この単純なJUnitアサーションはなぜ失敗しますか?Java SimpleDateFormatの解析結果が1時間遅れます(そして、はい、タイムゾーンを設定します)
public void testParseDate() throws ParseException {
final SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss z");
formatter.setTimeZone(UTC);
final Calendar c = new GregorianCalendar();
c.setTime(formatter.parse("2013-03-02 11:59:59 UTC"));
assertEquals(11, c.get(HOUR_OF_DAY));
}
グレゴリオ暦のデフォルトコンストラクタは、ローカルタイムゾーンを使用して、私は一日の時間が11であると予想されているだろうが、JUnitのによると、一日の時間が12
junit.framework.AssertionFailedError: expected:<11> but was:<12>
at junit.framework.Assert.fail(Assert.java:47)
... snip ...
夏時間。 –
いいえ、そうではありませんでした。私は夏時間を避けるためにどこでもUTCを使用しようとしています。私はそれによってたくさん噛まれました。 –