[英]DateTime is giving unexpected result
我用Jodatime DateTime
試過這個,
DateTime dateTime = DateTime
.parse("1-JAN-1900", DateTimeFormat.forPattern("dd-MMM-yyyy"))
.plusSeconds(2075866000);
String dateTimeStr = DateTimeFormat.forPattern(
"yyyy/MM/dd HH:mm:ss").print(dateTime);
System.out.println(dateTimeStr);
我也嘗試過使用Jodatime MutableDateTime
MutableDateTime dateTime = MutableDateTime
.parse("1-JAN-1900", DateTimeFormat.forPattern("dd-MMM-yyyy"));
dateTime.add(DurationFieldType.seconds(), 2075866000);
String dateTimeStr = DateTimeFormat.forPattern(
"yyyy/MM/dd HH:mm:ss").print(dateTime.toDateTime());
System.out.println(dateTimeStr);
兩者都給了我相同的結果, 1965/10/13 06:09:54
。
我期待, 1965/10/13 05:26:40
,相反。 我使用下面給出的Oracle查詢得到了這個,
select to_date('1900-JAN-1') + 2075866000/86400 from dual
在Joda和Oracle之間發生矛盾之后,我嘗試了Wolframalpha ,這也給了我與Oracle相同的結果。
有人請解釋為什么會有這種差異?
根據timeanddate.com ,吉隆坡在1901年,1905年,1933年,1941年,1942年,1945年進行了時區調整,總和可能解釋了你所看到的差異。
編輯:事實上,如果你把所有調整加起來你得到43:14,這正是你所看到的差異。
JodaTime和Java正在為您提供正確的數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.