Java Date日期时间类的用法(附带实例)
Java 中的 Date 类封装当前的日期和时间。
JDK 中有两个同名的 Date,一个在 java.util 包中,一个在 java.sql 包中。前者从 JDK 1.0 开始出现,但它里面的一些方法逐渐被弃用(被 Calendar 的相应方法所取代),而后者是前者的子类,用来描述数据库中的时间字段。
Java Date 类的常用构造方法:
下面通过一个例子演示 Date 类中相关方法的使用。
【实例】Date 类的应用。定义一个 Date 对象,代表当前时间点,输出该对象的字符串表示形式,同时输出该时间点与 1970 年 1 月 1 日零点零分相隔的毫秒数。
JDK 中有两个同名的 Date,一个在 java.util 包中,一个在 java.sql 包中。前者从 JDK 1.0 开始出现,但它里面的一些方法逐渐被弃用(被 Calendar 的相应方法所取代),而后者是前者的子类,用来描述数据库中的时间字段。
Java Date 类的常用构造方法:
- public Date():分配 Date 对象并初始化此对象,以表示分配给它的时间(精确到毫秒)。
- public Date(long date):分配 Date 对象并初始化此对象,表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
Java Date类的常用方法
Date 类中有很多方法,可以对时间日期进行操作,但是有许多方法从 JDK 1.1 以后已过时,其相应的功能也由 Calendar 中的方法取代。在此只介绍其中几个比较常用的方法,如下表所示。方法 | 描述 |
---|---|
boolean after(Date when) | 测试此日期是否在指定日期之后 |
boolean before(Date when) | 测试此日期是否在指定日期之前 |
Object clone() | 返回此对象的副本 |
int compareTo(Date anotherDate) | 比较两个日期的顺序,如果参数 anotherDate 等于此 Date,则返回 0;如果此 Date 在参数 anotherDate 之前,则返回小于 0 的值;如果此 Date 在参数 anotherDate 之后,则返回大于0的值 |
boolean equals(Object obj) | 比较两个日期的相等性。当且仅当参数不为 null,并且是一个表示与此对象相同的时间点(到毫秒)的 Date 对象时,结果才为 true |
long getTime() | 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数 |
void setTime(long time) | 设置 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time(毫秒)的时间点 |
String toString() | 把 Date 对象转换为字符串形式 |
下面通过一个例子演示 Date 类中相关方法的使用。
【实例】Date 类的应用。定义一个 Date 对象,代表当前时间点,输出该对象的字符串表示形式,同时输出该时间点与 1970 年 1 月 1 日零点零分相隔的毫秒数。
import java.util.*; public class DeteDemo { public static void main(String[] args) { Date date = new Date(); // 实例化一个 Date 对象,代表当前时间点 System.out.println(date); // 用 toString() 方法显示时间和日期 long msec = date.getTime(); // 得到日期的毫秒数 System.out.println("1970-1-1 到现在的毫秒数是 " + msec); } }程序执行结果为:
Thu Apr 17 08:37:49 UTC 2025 1970-1-1 到现在的毫秒数是 1744879069646