Groovy получить сегодняшнюю дату в минуту 00:00:00 - PullRequest
9 голосов
/ 12 января 2012

У меня есть эта проблема.Мне нужно сделать следующее:

  • получить сегодняшнюю дату
  • сделать новую дату, которая будет сегодняшней датой в 00: 00: 00
  • сделать другую дату, котораябудет сегодняшняя дата в 23: 59: 59

Например.Сегодня Дата 12 января 2012 г. 19:00

Как мне сделать новую дату, которая будет 12 января 2012 г. 00:00 (начало текущего дня)

Это может показаться легким, но я не мог найти какой-либо отличной формы, чтобы получить его, любая помощь будет оценена.

Ответы [ 2 ]

21 голосов
/ 12 января 2012

Чтобы получить дату в полночь, используйте Date.clearTime (документы) :

dateAtMidnight = new Date()
dateAtMidnight.clearTime()

(Javadocs для Groovy JDK <2.0, <code>clearTime() объявлено void в Groovy JDK 2.0, что запрещает d = new Date().clearTime(). Комментарии указывают, что исходная функциональность может быть восстановлена, ууу!)

Для сравнения вместо <= 23:59:59 используйте < (the next day):

(aDate >= dateAtMidnight) && (aDate < (dateAtMidnight + 1))
1 голос
/ 18 декабря 2014

Альтернативный способ, но он устанавливает дату и время (но не просто получает дату)

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

...