2012-01-12 14 views
8

この問題があります。私は、以下を実行する必要がありますGroovy今日の日付を分で取得00:00:00

  • GET今日の日付
  • 〇時00分00秒
  • で今日の日付が今日の日付は、午後11時59分になります別の日付を作ることになる新しい日付を行います。 59

たとえば、今日日は、12月-2012は、私は、12月-2012 00:00(現在の日の開始)

になります新しい日付を、作ることができるそれは簡単に思えるかもしれどう19:00

ですしかし、私はそれを得るためにどんなgroovywayも見つけることができませんでした、どんな助けも評価されるでしょう。

答えて

18

深夜使用Date.clearTime (docs)で日付を取得するには、次の

dateAtMidnight = new Date() 
dateAtMidnight.clearTime() 

(のJavadocは、GroovyのJDK < 2.0、clearTime()のためのものであるがd = new Date().clearTime()を防止し、GroovyのJDK 2.0でvoid宣言されているコメントは、元の機能を復元することができる示します。 !、イェーイ)比較のために

、代わりに<= 23:59:59を使用しての、< (the next day)使用:

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

'Date.clearTimeは()' GroovyのJDK方式なので、それはバージョンですGrailsよりもGroovyのほうが重要です。 Groovy 1.8.2では 'Date' –

+0

@Don Rightを返し、2.0では無効です。 grailsがどのように議論に入ったのか分かりません。 –

+0

@DaveNewtonそれは、私が思うに、Groovy 2の 'DateDefaultMethods'のリファクタリングを行った人とチャットしたと思います。それは' void'を返すように見えます。 –

1

別の方法、それは日時を設定します(しかし、それは単に日付を取得しません)

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

関連する問題