簡體   English   中英

DateTime給出了意想不到的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM