Java中获取时间日期主要涉及到这几个类:
- Date —— 基本的时间对象
- SimpleDateFormat —— 根据Date对象返回所需要的时间格式
- Calendar —— 获取具体的日期字段
获取某一格式的时间
例如我们想得到 “2015-11-19”,或 “2015-11-19 12:30:00”
这样的字符串,可以使用Date与SimpleDateFormat来获取。
long time = System.currentTimeMillis();
Date date = new Date(time); // 生成Date对象
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(mFormat.format(date)); // 传入date并根据给定的格式返回相应字符串
运行的结果:
2015-11-19 17:20:13
SimpleDateFormat支持的格式有很多,Javadoc中列举的有这些:
格式 | 样例 |
---|---|
“yyyy.MM.dd G ‘at’ HH:mm:ss z” | 2001.07.04 AD at 12:08:56 PDT |
“EEE, MMM d, ”yy” | Wed, Jul 4, ‘01 |
“h:mm a” | 12:08 PM |
“hh ‘o”clock’ a, zzzz” | 12 o’clock PM, Pacific Daylight Time |
“K:mm a, z” | 0:08 PM, PDT |
“yyyyy.MMMMM.dd GGG hh:mm aaa” | 02001.July.04 AD 12:08 PM |
“EEE, d MMM yyyy HH:mm:ss Z” | Wed, 4 Jul 2001 12:08:56 -0700 |
“yyMMddHHmmssZ” | 010704120856-0700 |
“yyyy-MM-dd’T’HH:mm:ss.SSSZ” | 2001-07-04T12:08:56.235-0700 |
“yyyy-MM-dd’T’HH:mm:ss.SSSXXX” | 2001-07-04T12:08:56.235-07:00 |
“YYYY-‘W’ww-u” | 2001-W27-3 |
获取日期中某一字段
有时我们需要获取诸如年、月、日这样的字段,这时就可以使用Calendar类。它的用法很简单:
Calendar mCalendar = Calendar.getInstance();
System.out.println(mCalendar.get(Calendar.YEAR));
System.out.println(mCalendar.get(Calendar.MONTH) + 1); // 注意月份信息的值比实际的月份数字小1
System.out.println(mCalendar.get(Calendar.DAY_OF_MONTH));
System.out.println(mCalendar.get(Calendar.HOUR_OF_DAY));
System.out.println(mCalendar.get(Calendar.MINUTE));
System.out.println(mCalendar.get(Calendar.SECOND));
运行的结果:
Year 2015
Month 11
Day 19
Hour 17
Minute 20
Second 13