Java中获取时间日期主要涉及到这几个类:
Date
—— 基本的时间对象SimpleDateFormat
—— 根据Date对象返回所需要的时间格式Calendar
—— 获取具体的日期字段
获取某一格式的时间
例如我们想得到 “2015-11-19”,或 “2015-11-19 12:30:00”
这样的字符串,可以使用Date与SimpleDateFormat来获取。
1 | long time = System.currentTimeMillis(); |
运行的结果:1
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类。它的用法很简单:1
2
3
4
5
6
7
8Calendar 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));
运行的结果:1
2
3
4
5
6Year 2015
Month 11
Day 19
Hour 17
Minute 20
Second 13