0%

Java中获取日期及相应字段

Java中获取时间日期主要涉及到这几个类:

  • Date —— 基本的时间对象
  • SimpleDateFormat —— 根据Date对象返回所需要的时间格式
  • Calendar —— 获取具体的日期字段

获取某一格式的时间
例如我们想得到 “2015-11-19”,或 “2015-11-19 12:30:00”
这样的字符串,可以使用Date与SimpleDateFormat来获取。

1
2
3
4
5
6
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并根据给定的格式返回相应字符串

运行的结果:

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
8
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));

运行的结果:

1
2
3
4
5
6
Year 2015
Month 11
Day 19
Hour 17
Minute 20
Second 13