我正在尝试以天,小时和秒来区分两个日期:
import groovy.time.*
Date now = new Date()
// Using deprecated constructor just for this example
Date newYearsDay2000 = new Date(2000, 0, 1)
use (TimeCategory) {
now - newYearsDay2000
}
打印:
-690023天,-14小时,-38分钟,-27.182秒
这显然不像今天的日期和2000/1/1之间的区别,我哪里错了?
谢谢, 唐
答案 0 :(得分:4)
可能是弃用的构造函数的问题?
如果您使用日历(and the Groovy updated method)创建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 for Date显示带有注释的构造函数:
日期(int year,int month,int date)
已过时。从JDK 1.1版开始,由Calendar.set(年份+ 1900,月份,日期)或GregorianCalendar(年份+ 1900,月份,日期)取代。
这让我相信:
Date newYearsDay2000 = new Date(2000, 0, 1)
实际创建年度 3900
的新年日期答案 1 :(得分:1)
Date 参数: 年 - 减去1900年。