Java中Date的构造方法及大小比较
Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间。在实际的工作中有时会涉及到对日期时间的一个比较,判断两个时间的先后顺序。
首先来简单的看一下Date类,因为在其使用过程发现其使用存在一些缺陷,Date类大多数的方法都已被弃用,但是还是有一些人在使用中。下面是Date的两个构造方法:
public Date() {
this(System.currentTimeMillis());
}
public Date(long date) {
fastTime = date;
}
从这就可以看出创建Date对象实际上就是获取系统当前距离1970年0时0分0秒0毫秒的总的毫秒数。
比较两个Date的大小则可以通过以下保留的一些方法来实现:
1. public boolean after(Date when)
判断当前date是否早于目标when,早则返回true,等于或晚于则返回false;
2. public boolean after(Date when)
例如:
Date date1 = new Date();
// 加一个空循环,避免date1和date2产生间隔过短导致相等
for (int i = 0; i < 1000000; i++) {
}
Date date2 = new Date();
System.out.println(date1.before(date2));
System.out.println(date1.after(date2));
运行结果:
true
false
3. public int compareTo(Date anotherDate)
通过此方法可以比较两个Date数据,当前date与anotherDate相等时返回0,小于返回负数,大于返回正数。
判断上面例子中的date1和date2:
System.out.println(date1.compareTo(date2));
运行结果:
-1
4. public long getTime()
返回系统当前距离1970年0时0分0秒0毫秒的总的毫秒数,直接将两个date对象调用该方法的返回值进行相减,判断差值大小即可。
- 赞