Может быть проблема с устаревшим конструктором?
Если вы используете Calendar ( и Groovy обновленный метод ) для создания newYearsDay2000
var, вы получите:
import groovy.time.*
import static java.util.Calendar.*
Date now = new Date()
// Use the static imported Calendar class
Date newYearsDay2000 = instance.updated( year:2000, month:JANUARY, day:1 ).time
use( TimeCategory ) {
now - newYearsDay2000
}
, что дает результат:
3925 days, 23 hours, 59 minutes, 59.999 seconds
Редактировать
Да, JavaDoc для даты показывает этот конструктор с комментарием:
Дата (int год, int месяц, int дата)
Запрещены. Начиная с версии 1.1 JDK, заменено на Calendar.set (год + 1900, месяц, дата) или GregorianCalendar (год + 1900, месяц, дата).
Что заставляет меня верить, что:
Date newYearsDay2000 = new Date(2000, 0, 1)
Фактически создает дату для нового года в году 3900