Java中常用日期类Date详解
文章目录
Date类概述–JDK11API
Date类表示特定的时刻,精度为毫秒。
public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
根据Datel类的创建时的声明可知Date类是可序列化的,可克隆的,和可以比较的,有固定的比较顺序。
在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 不推荐使用Date中的相应方法。
在接受或返回年,月,日,小时,分钟和秒值的所有Date类方法中,使用以下表示:
- 一个月由0到11的整数表示; 0是1月,1是2月,依此类推; 因此11月是12月。
- 小时由0到23之间的整数表示。因此,从午夜到凌晨1点的小时是小时0,从中午到下午1点的小时是小时12。
- 一分钟由通常方式的0到59的整数表示。
创建Date对象
Date()
此方法创建的为当前时间的Date对象
源码: public Date() { this(System.currentTimeMillis()); //注释:System.currentTimeMillis() 可以获得当前时间的毫秒数 }
Date()方法的使用: Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。 Date date = new Date(); System.out.println(date); 打印结果:Sun Jan 24 00:47:54 CST 2021
Date对象的默认格式为 “星期几 月 日 时:分:秒 地区 年份”
CST 意思是 China Standard Time 中国标准时间,也就是北京时间,东八区。Date(long time)
此方法可以创建指定的时间的Date对象,通过给定的毫秒数来设置指定的时间(注:毫秒数为当前时间与1970年1月1日00:00:00 GMT的时间差,但由于我们在东八区实际上是与1970年1月1日00:08:00的差值)
源码: public Date(long date) { fastTime = date; }
方法的使用: Date(long time) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。 long time1 = 1611420846276L; Date date1 = new Date(time1); System.out.println(date1)