gpt4 book ai didi

java - 在 Joda 中将 UTC 转换为 LocalDateTime?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:46 25 4
gpt4 key购买 nike

        DateTime dt = new DateTime("2014-09-15T21:20:14");
System.out.println(dt);
System.out.println(dt.plusMillis(581042272).toDateTime().toLocalDateTime().toDateTime(DateTimeZone.forID("GMT")));

dt 中的时间是UTC,我想将dt 中的时间加上毫秒设置为GMT?但是,时间仍打印为 UTC(比 GMT 晚 1 小时)。我怎样才能将它设置为提前一小时?

2014-09-15T21:20:14.000+01:00
2014-09-22T14:44:16.272Z

我知道时间正好晚了一个小时,因为我是在格林威治标准时间 15:44:16 提出这个请求的

最佳答案

您的 DateTime 实际上不是 UTC - 它在系统默认时区。要修复它,您只需要告诉它您传递的值是 UTC:

DateTime dt = new DateTime("2014-09-15T21:20:14", DateTimeZone.UTC);
System.out.println(dt);
DateTime other = dt.plusMillis(581042272);
System.out.println(other);

输出:

2014-09-15T21:20:14.000Z
2014-09-22T14:44:16.272Z

另请注意,您不能在格林威治标准时间 15:44:16 发出请求,因为那还没有发生。在我写这篇文章时,是英国夏令时间 16:05,因此是格林威治标准时间 15:05。重要的是要了解英国的时区不是“GMT”——这只是我们不遵守夏令时的时区的一部分。

如果要转换为英国时区,则需要:

DateTime other = dt.plusMillis(581042272)
.withZone(DateTimeZone.forID("Europe/London"));

关于java - 在 Joda 中将 UTC 转换为 LocalDateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977197/

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