天天看点

Java Date and Time系列(三)- java.util.Date介绍

java.util.Date的创建

java.util.Date这个类可能是我们最常用的一个用来表示日期的类了。我们可以像下面这样初始化一个实例来表示当前日期和时间:

java.util.Date date = new java.util.Date();
           

Date类中有一个getTime()方法可以用来获取日期实例的毫秒表示

java.util.Date date = new java.util.Date();
long time = date.getTime();
           

这个time的值和在创建date实例的时刻调用System.currentTimeMillis()获取到的值是一样的。

所以,你也可以像下面这样创建一个日期实例:

long now = System.currentTimeMillis();
java.util.Date date = new java.util.Date(now);
           

java.util.Date之间的比较

由于java.util.Date实现了java.lang.Comparable接口,所以我们可以像下面那样使用compareTo()方法来比较两个实例的值:

java.util.Date date1 = new java.util.Date();
java.util.Date date2 = new java.util.Date();

int comparison = date1.compareTo(date2);
           

如果date1小于date2返回-1

如果date1和date2相等返回0

如果date1大于date2返回1

除了使用compareTo()方法,还可以使用Date类另外提供的before()和after()方法来进行比较

java.util.Date date1 = new java.util.Date();
java.util.Date date2 = new java.util.Date();

boolean isBefore = date1.before(date2);
boolean isAfter  = date1.after (date2);
           

注意,不管是使用compareTo()还是使用before()和after()来进行比较,这个比较的精度都是只精确到毫秒。

写在结尾

java.util.Date关于年月日等get和set操作都已经是不推荐的方法了,如果需要对这些值进行操作,那我们该考虑使用java.util.Calendar类来代替java.util.Date类。