2012-01-12 51 views
8

我有這個問題。我需要做到以下幾點:Groovy在分鐘得到今天的日期00:00:00

  • 獲取今天的日期
  • 使這將是今天的日期00:00:00
  • 使這將是今天的日期在23:59另一個日期新日期: 59

例如,今天日期是12月 - 2012 19:00

我怎樣才能使一個新的日期,這將是12月 - 2012 00:00(當天開始)

,它可能似乎很容易,但我無法找到任何groovyway來獲得它,任何幫助將被折衷。

回答

18

來獲得日期在午夜使用Date.clearTime (docs)

dateAtMidnight = new Date() 
dateAtMidnight.clearTime() 

(Javadoc中是Groovy的JDK < 2.0,clearTime()聲明void在Groovy JDK 2.0,防止d = new Date().clearTime()註釋指明原始功能可以恢復!,耶而是採用<= 23:59:59

爲了進行比較,使用< (the next day)

(aDate >= dateAtMidnight) && (aDate < (dateAtMidnight + 1)) 
+0

'Date.clearTime()'是一個Groovy JDK的方法,所以它的版本Groovy,而不是Grails。在Groovy 1.8.2中,它返回一個'Date' – 2012-01-13 09:54:28

+0

@Don Right,在2.0中它是無效的。不知道Grails如何進入討論。 – 2012-01-13 11:32:55

+0

@DaveNewton它回到了我認爲的日期,和他們做了Groovy 2 DateDefaultMethods重構的人聊天,它看起來像是一個疏忽,它返回了void# – 2012-01-13 12:35:53

1

的另一種方式,但它設置日期時間(但它不會只是日期)

dateAtMidnight = new Date() dateAtMidnight.set(hourOfDay: 0, minute: 0, second: 0)