当我在一个代表1970年1月1日的日期设置月份,然后立即返回月份时,它会被一个人关闭.
import java.util.Date; @Test public void monthShouldBeExpectedValue() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(0)); int expectedMonth = Calendar.JUNE; calendar.set(Calendar.MONTH, expectedMonth); int actualMonth = calendar.get(Calendar.MONTH); assertThat(actualMonth, equalTo(expectedMonth)); // test fails: expected 5 got 6 }
如果我改变这一行
calendar.setTime(new Date(0));
至
calendar.setTime(new Date()); // use 'today' instead of 1/1/1970
然后测试通过.谁知道为什么?
编辑
日期的印刷版本是:
new Date(0): Wed Dec 31 19:00:00 EST 1969 date from calendar: Tue Jul 01 19:00:00 EDT 1969
我正在运行一个旧的JDK:1.6.0_30-b12(64位)
我在东部标准时间.