Java中Date的構(gòu)造方法及大小比較

  Date類在jdk1.1中就已經(jīng)出現(xiàn),算得上一個(gè)比較有歷史的類了,用來表示日期時(shí)間。在實(shí)際的工作中有時(shí)會(huì)涉及到對(duì)日期時(shí)間的一個(gè)比較,判斷兩個(gè)時(shí)間的先后順序。

  首先來簡單的看一下Date類,因?yàn)樵谄涫褂眠^程發(fā)現(xiàn)其使用存在一些缺陷,Date類大多數(shù)的方法都已被棄用,但是還是有一些人在使用中。下面是Date的兩個(gè)構(gòu)造方法:

  public Date() {

  this(System.currentTimeMillis());

  }

  public Date(long date) {

  fastTime = date;

  }

  從這就可以看出創(chuàng)建Date對(duì)象實(shí)際上就是獲取系統(tǒng)當(dāng)前距離1970年0時(shí)0分0秒0毫秒的總的毫秒數(shù)。

  比較兩個(gè)Date的大小則可以通過以下保留的一些方法來實(shí)現(xiàn):

  1. public boolean after(Date when)

  判斷當(dāng)前date是否早于目標(biāo)when,早則返回true,等于或晚于則返回false;

  2. public boolean after(Date when)

  例如:

  Date date1 = new Date();

  // 加一個(gè)空循環(huán),避免date1和date2產(chǎn)生間隔過短導(dǎo)致相等

  for (int i = 0; i < 1000000; i++) {

  }

  Date date2 = new Date();

  System.out.println(date1.before(date2));

  System.out.println(date1.after(date2));

  運(yùn)行結(jié)果:

  true

  false

  3. public int compareTo(Date anotherDate)

  通過此方法可以比較兩個(gè)Date數(shù)據(jù),當(dāng)前date與anotherDate相等時(shí)返回0,小于返回負(fù)數(shù),大于返回正數(shù)。

  判斷上面例子中的date1和date2:

  System.out.println(date1.compareTo(date2));

  運(yùn)行結(jié)果:

  -1

  4. public long getTime()

  返回系統(tǒng)當(dāng)前距離1970年0時(shí)0分0秒0毫秒的總的毫秒數(shù),直接將兩個(gè)date對(duì)象調(diào)用該方法的返回值進(jìn)行相減,判斷差值大小即可。

the end
  • 標(biāo)簽:
  • Java

評(píng)論(0)