System类中提供了获取时间的静态方法public static long currentTimeMillis() ,该方法返回的是系统当前时间,单位是毫秒。
2、Date[java.util.Date]
a、分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
b、其内部的实现是在构造器中调用了System.currentTimeMillis()这个方法。
1
|
内部构造器:
|
1
2
3
|
public
Date() {
this
(System.currentTimeMillis());
}
|
3、DateFormat[java.text.DateFormat] abstract class
由于是抽象类,我们可以在其直接子类SimpleDateFormat中去具体看其实现。
4、SimpleDateFormat[java.text.SimpleDateFormat]
a、继承体系:
java.lang.Object
--java.text.Format
--java.text.DateFormat
--java.text.SimpleDateFormat
b、使用特定格式输出时间
【了解】SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
a、相关方法的解读
1)、 String format(Object obj) ---格式化一个对象以生成一个字符串。[Format]
1
|
eg:
|
1
2
3
4
|
Date date =
new
Date();
DateFormat df =
new
SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss"
);
String myTime = df.format(date);
System.out.println(myTime);
//****-**-** **:**:**
|
1
|
eg:
|
1
2
3
4
5
6
7
8
|
String myFormat =
"2014年07月07日"
;
//被解析的时间字符串
SimpleDateFormat sdf =
new
SimpleDateFormat(
"yyyy年MM月dd日"
);
//解析格式
try
{
Date myDate = sdf.parse(myFormat);
System.out.println(myDate);
//Mon Jul 07 00:00:00 CST 2014
}
catch
(ParseException e) {
e.printStackTrace();
}
|
1
2
|
【tips】注意给定的时间字符串和被解析的格式要对应起来,
否则会出现解析异常--java.text.ParseException
|
5、Calendar[java.util.Calendar]
【了解】Calendar 类是一个abstract类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。
相关方法解读:
1、static Calendar getInstance() ---使用默认时区和语言环境获得一个日历。
Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:
1
|
eg:
|
1
|
Calender calender = Calender.getInstace();
|
【tips】由于语言的定制标准和创始人的背景有关,所以中国日历的一些说法和其规定的标准有些差异,所以有必要了解一下有差异的属性field:
a)、Calendar.MONTH 其范围为:[0~11]
b)、Calendar.DAY_OF_WEEK 星期天是第一天
1
|
eg:
|
1
2
|
calendar.set(Calendar.YEAR,
2014
);
calendar.set(Calendar.MONTH,
11
);
//12月
|
总结:时间的处理方式可以用SimpleDateFormat来处理,这也是最常用的一种方式,对于Calendar类,虽然提供了大量的关于时间和日历的处理,但是一般实际工作中不太常用,所以最主要的还是要掌握
SimpleDateFormat来表示时间。