Date类是java的第一代日期类,虽然有很多方法已经过时,但是也有我们学习的地方,这里只介绍还没有过时的方法

构造函数

  1. public Date()

    根据现在的日期时间构造Date对象

  2. public Date(long date)

​ 根据指定的日期时间(Unix时间,单位为毫秒)构造Date对象

1
2
// 构造1
Date date = new Date();
1
2
// 构造2
Date date = new Date(0);

getTime

获得Date对象表示的Unix时间,单位为毫秒

public long getTime()

1
2
3
4
Date date = new Date();
System.out.println(date.getTime());
// 输出结果:
// 1662508124741

compareTo

比较两个Date对象(这里假定为A和B)代表的时间的大小

  1. A < B 返回-1
  2. A = B 返回0
  3. A > B 返回1

public int compareTo(Date anotherDate)

1
2
3
4
5
Date date1 = new Date(65);
Date date2 = new Date(545);
System.out.println(date1.compareTo(date2));
// 输出结果:
// -1

setTime

设置Date对象表示的时间

public void setTime(long time)

1
2
3
4
5
Date date = new Date(65);
date.setTime(999999);
System.out.println(date.getTime());
// 输出结果:
// 999999

toInstant

将Date对象转换为Instant对象

public Instant toInstant()

1
2
Date date = new Date();
Instant instant = date.toInstant();

before

比较当前Date对象表示的时间是否比when表示的时间早

public boolean before(Date when)

1
2
3
4
Date date = new Date(999);
System.out.println(date.before(new Date(998)));
// 输出结果:
// false

after

比较当前Date对象表示的时间是否比when表示的时间晚

public boolean after(Date when)

1
2
Date date = new Date(999);
System.out.println(date.after(new Date(998)));

toString

返回Date对象表示的格林尼治风格时间

public String toString()

1
2
3
4
Date date = new Date();
System.out.println(date.toString());
// 输出结果:
// Wed Sep 07 08:13:11 CST 2022

from

将Instant对象转换为Date对象

1
2
3
4
5
Instant now = Instant.now();
Date date = Date.from(now);
System.out.println(date);
// 输出结果:
// Wed Sep 07 08:10:33 CST 2022

自定义Date类日期时间输出的格式–SimpleDateFormat

SimpleDateFormat可以格式化Date类的日期输出格式

1
2
3
4
5
6
7
8
9
Date date = new Date();
// 定义格式化的样式,一个SimpleSaeFormat对象绑定一个样式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 用定义好的样式格式化Date时间,返回格式化后的字符串
String format = simpleDateFormat.format(date);
// 输出结果:
System.out.println(format);
// 输出结果:
// 2022-09-07 08:18:04