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对象调用该方法的返回值进行相减,判断差值大小即可。

the end

评论(0)