0

2038 年 1 月 19 日以降、JavaがオーバーフローするYear_2038_problemが原因で動作を停止するコードを書いているDateので、2036 年に失敗し始める junit テストを作成して、修正するのに 2 年の時間を与えることができると思います。

最初に失敗したテストを作成するために、25 年を追加しましたが、テストが失敗しなかったことに驚きました。

@Test
public void warn2038Overflow() {
    Calendar c = Calendar.getInstance();
    c.add(Calendar.YEAR, 25);

    // today is 2019 plus 25 years becomes 2044 which should overflow
    assertEquals("No calendar overflow", true,
            c.getTimeInMillis() > 0l);
}

これが失敗しない理由の手がかりはありますか?

「junit:junit:4.12」および「androidx.test:runner:1.1.0」でJava-1.8.0_152(64ビット)でAndroid-Studio-3.4.1を使用しています

4

1 に答える 1