我希望,在作解释之后,会变得有意义,因为它是一个我们重新面临的、难以描述的棘手问题。
我们有一个马文项目,在胡德森建树,其中包括一些使用和声称日期的单位测试。 胡德森服务器在太阳能上运行。 现在,使用日期的单位测试有时(相当于30%)失败,因为从单位测试的指定时间中扣除了3.5小时,因此声称开始失败。 另有70%的人都做了罚款,尽管在法典中没有任何变化,而且我们每小时有一次工作。
我在检查时间的单位测试中添加以下代码:
@Test
public void testDate() {
System.out.println("new DateMidnight(2011, 1, 5).toDate();");
System.out.println(new DateMidnight(2011, 1, 5).toDate());
System.out.println(new DateMidnight(2011, 1, 5).toDate().getTime());
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2011);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 5);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
System.out.println("cal.getTime();");
System.out.println(cal.getTime());
System.out.println(cal.getTime().getTime());
}
So basically it should print the same thing when using jodatime or plain old Calendar. This is the case in 70% of the runs; for the other 30% I get following printouts:
Running TestSuite
new DateMidnight(2011, 1, 5).toDate();
Tue Jan 04 21:30:00 MET 2011
1294173000000
cal.getTime();
Wed Jan 05 12:00:00 MET 2011
1294225200000
因此,日历保留正确的日期和时间,但在职时间为3 5小时。
当地ma子检验从来都不构成这一问题,我们可以说明其原因。 尤其是,我们不得不想出一种理由,即这些测试有时会通过,有时会失败,而没有改变任何法规,也没有改变son或服务器设置。
而且,我们用 co子操作了ven子,这意味着单位试验两次。 发生这种情况的还有,他们第一次走过路,第二次倒闭,或者两次失败。
Thanks for any solutions or tips to track down the cause,
Stijn