GregorianCalendar calendar = new GregorianCalendar(1900, 0, 1, 8, 5, 51);
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
System.out.println(calendar.getTime());
GregorianCalendar calendar2 = new GregorianCalendar(1900, 0, 1, 8, 5, 52);
System.out.println(calendar2.get(Calendar.MINUTE));
System.out.println(calendar2.get(Calendar.SECOND));
System.out.println(calendar2.getTime());
if (calendar.before(calendar2)) {
System.out.println("pass");
} else {
System.out.println("damn it error!");
}最后结果:
11
43
Mon Jan 01 08:11:43 CST 1900
5
52
Mon Jan 01 08:05:52 CST 1900
damn it error!提问:为什么?
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
System.out.println(calendar.getTime());
GregorianCalendar calendar2 = new GregorianCalendar(1900, 0, 1, 8, 5, 52);
System.out.println(calendar2.get(Calendar.MINUTE));
System.out.println(calendar2.get(Calendar.SECOND));
System.out.println(calendar2.getTime());
if (calendar.before(calendar2)) {
System.out.println("pass");
} else {
System.out.println("damn it error!");
}最后结果:
11
43
Mon Jan 01 08:11:43 CST 1900
5
52
Mon Jan 01 08:05:52 CST 1900
damn it error!提问:为什么?
51
Mon Jan 01 08:05:51 GMT+08:00 1900
5
52
Mon Jan 01 08:05:52 GMT+08:00 1900
pass很正常阿
你的呢?
据说,在1.5.0_08 的版本中运行正确
run:
11
43
Mon Jan 01 08:11:43 CST 1900
5
52
Mon Jan 01 08:05:52 CST 1900
damn it error!
生成成功(总时间:0 秒)java version "1.5.0_08"
同问,为什么输出这个时间?
11
43
Mon Jan 01 08:11:43 CST 1900
无法解释
建议多用几个jdk版本试一试,包括非sun公司的版本
有可能是个bug
我晕死
你没问题的JDK版本是多少?
Java 中规定,在1970-1-1 00:00:00 之前的时间都是负值而且如果两个时间都不是在我上面说过的时间段之外的话,一切正常。
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
现在在Time 上面,推荐使用joda time,别使用JDK内部的类了