java.util.Date

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。

原文地址:https://www.cnblogs.com/shizunatsu/p/14384511.html