时间

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

你可能感兴趣的:(时间)