类 Date
表示特定的瞬间,精确到毫秒。
Dtae类中有很多方法已经过时,在日期和时间字段之间进行转换时建议使用Calendar
类,格式化和解析日期字符串时建议使用DateFormat
类
Date
类打算反映协调世界时 (UTC),但无法做到如此准确,这取决于 Java 虚拟机的主机环境。当前几乎所有操作系统都假定 1 天 = 24 × 60 × 60 = 86400 秒。但对于 UTC,大约每一两年出现一次额外的一秒,称为“闰秒”。闰秒始终作为当天的最后一秒增加,并且始终在 12 月 31 日或 6 月 30 日增加。例如,1995 年的最后一分钟是 61 秒,因为增加了闰秒。大多数计算机时钟不是特别的准确,因此不能反映闰秒的差别。 在类 Date
所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:
- 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
- 日期(一月中的某天)按通常方式由整数 1 至 31 表示。
- 小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
- 分钟按通常方式由 0 至 59 的整数表示。
- 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。
在所有情形中,针对这些目的赋予方法的参数不需要在指定的范围内;例如,可以把日期指定为 1 月 32 日,并把它解释为 2 月 1 日的相同含义。
在Java中,标准基准时间是1970 年 1 月 1 日 00:00:00 GMT。
常用构造方法
Date() 创建一个Date对象
Date(long Date) 分配 Date
对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
public static void main(String[] args) { Date d = new Date(); System.out.println(d); }
执行结果为
Sun Feb 07 13:23:30 CST 2021
打印的是当前操作系统的时间,因为Date类重写过toString方法。
其中,CST表示China Standard Time。
常用方法
boolean equals(Object obj) 比较两个日期是否相等
long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒值
void setTime(long Time) 设置此 Date
对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后,time
毫秒的时间点
毫秒值转为日期对象有两种方法,一是利用Date类构造器,二是通过Date类方法setTime;
日期转为毫秒值有两种方法,一是利用Date类方法getTime,二是用System类的方法currentTimeMillis。