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を使用しています