一 Java7日期时间API
Date
使用 java.util.Date
表示日期与时间,其承载了毫秒级精度的 Unix 时间。除此之外的功能(包括:承载 “年、月、日、时、分、秒” 字段,格式化,字符串解析),均标记为 @Deprecated
。
构造函数与常用方法
Date
类支持两个构造函数,如下表所示。
编号 | 构造函数 | 描述 |
---|---|---|
1 | Date() |
此构造函数使用当前日期和时间来初始化对象。 |
2 | Date(long millisec) |
此构造函数接受一个参数,该参数等于自1970年1月1日午夜以来经过的毫秒数。 |
以下是Date
类的方法列表
号 方法 描述
1 boolean after(Date date) 如果调用Date对象包含的日期晚于date指定的日期,则返回true,否则返回false。
2 boolean before(Date date) 如果调用Date对象包含的日期早于date指定的日期,则返回true,否则返回false。
3 Object clone( ) 复制调用的Date对象。
4 int compareTo(Date date) 将调用对象的值与date的值进行比较。 如果值相等则返回0。 如果调用对象早于date,则返回负值。 如果调用对象晚于date,则返回正值。
5 int compareTo(Object obj) 如果obj对象是Date类对象,则与compareTo(Date)操作相同。 否则,它会抛出ClassCastException。
6 boolean equals(Object date) 如果调用Date对象包含与date指定的时间和日期相同的时间和日期,则返回true,否则返回false。
7 long getTime() 返回自1970年1月1日以来经过的毫秒数。
8 int hashCode() 返回调用对象的哈希码。
9 void setTime(long time) 设置时间指定的时间和日期,表示从1970年1月1日午夜开始的经过时间(以毫秒为单位)。
10 String toString( ) 将调用Date对象转换为字符串并返回结果。
11 static Date from(Instant instant) 从Instant对象获取一个Date的实例。jdk1.8新增
12 Instant toInstant() 将此Date对象转换为Instant 。jdk1.8新增
日期比较
Java使用以下三种方法来比较两个日期:
使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
测试Date构造方法和常用方法
/**
* 测试Date构造方法和常用方法
*/
@Test
public void testDate() {
// 参数表示1970-01-01 00:00:00到指定时间的毫秒数
// Sat Dec 05 12:49:59 CST 2020
Date date1 = new Date(1607143799610L);
System.out.println(date1);
// 当前时间
Date date2 = new Date();
System.out.println(date2);