gpt4 book ai didi

java - DateTime 给出了意想不到的结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:28 28 4
gpt4 key购买 nike

我已经尝试使用 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 为您提供了正确的数字。

关于java - DateTime 给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com