Date
构造方法 | 描述 |
---|---|
Date() | 分配的时间,精确到毫秒 |
Date(long date) | 初始化对象,date为1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 |
创建日期对象
Date d1=new Date();
或者
Date d2= new Date(5000);从1970年1月1日 早上8点0分0秒 开始经历了5秒的时间
Date常用方法
方法名 | 描述 |
---|---|
getTime() | getTime()得到的是一个long型的整数,这个整数表示了从1970.1.1 08:00:00:000到现在为止所有的毫秒数。该方法跟System.currentTimeMillis(),打印出来的效果是一致的 |
toString() | 跟直接打印Date类型的数据是一样的,如果直接打印Date对象,可以看到打印出来的格式是“Wed Sep 21 13:04:53 CST 2016”可读性比较差,可以参照日期格式化。 |
1970.1.1 08:00:00:000跟API描述1970.1.1 00:00:00:000不一致,是因为我们是太平洋时区有8小时的时差
日期格式化
涉及到SimpleDateFormat日期格式化类
1. 日期转字符串
y 代表年
M 代表月
d 代表日
H 代表24进制的小时
h 代表12进制的小时
m 代表分钟
s 代表秒
S 代表毫秒
举例
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
Date d = new Date();
String str = sdf.format(d);
2. 字符串转日期
模式(yyyy/MM/dd HH:mm:ss)需要和字符串格式保持一致,如果不一样就会抛出解析异常ParseException,所以需要try-catch处理
举例
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = "2016/1/15 12:12:12"
Date d;
try{
d=sdf.parse(str);
System.out.printf("字符串 %s 通过格式 yyyy/MM/dd HH:mm:ss %n 转换为日期对象: %s ",str,d.toString());
}catch (ParseException e) {
e.printStackTrace();
}
Calendar
是一个抽象类,不能直接new一个对象出来
方法名 | 方法声明 | 说明 |
---|---|---|
getTime | public final Date getTime () | 返回一个表示此 Calendar时间值(从历元至现在的毫秒偏移量)的 Date对象。返回:表示时间值的 Date。 |
Calendar转成Date
//使用单例模式创建一个Calendar对象
Calendar c = Calendar.getInstance();
//使用Date类设置Calendar类
c.setTime(new Date());
Calendar转成Date
Calendar c = Calendar.getInstance();
Date d = c.getTime();