我在兩個不同的結果中得到了“1000-01-01 00:00:00”的時間戳。有人知道為什么嗎?TimeZone timeZone = TimeZone.getTimeZone(ZoneOffset.UTC);GregorianCalendar calendar = new GregorianCalendar(timeZone);calendar.clear();calendar.set(1000, 0, 1, 0, 0, 0);System.out.println(calendar.getTimeInMillis()); // print -30609792000000System.out.println(ZonedDateTime.of(1000, 1, 1,0, 0, 0, 0, timeZone.toZoneId()).toInstant().toEpochMilli()); // print -30610224000000
1 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
GregorianCalendar
盡管它的名字使用的是儒略歷,但它是在 1582 年及以后引入公歷之前的時間。ZonedDateTime
相比之下,使用Proleptic Gregorian calendar,即將公歷推斷到當時未使用的世紀。
所以你實際上使用了兩個日歷系統。這解釋了為什么你會得到兩個不同的結果。
添加回答
舉報
0/150
提交
取消