java - 将带时区的 Joda-Time `DateTime` 转换为不带时区的 DateTime?

标签 java datetime jodatime

给定一个 DateTime 例如 2015-07-09T05:10:00+02:00 使用 Joda-Time

如何将其转换为本地时间,这意味着将时区添加到时间本身。
期望输出:2015-07-09T07:10:00
我试过 dateTime.toDateTime(DateTimeZone.UTC) 但这并没有给出想要的结果。

最佳答案

@Nazgul 说的是对的,但如果您想要实现的只是 UTC 区域中的“墙壁时间”,您可以执行以下操作:

DateTime dateTimePlus2 = DateTime.parse("2015-07-09T05:10:00+02:00");
System.out.println(dateTimePlus2);

DateTime dateTimeUTC = dateTimePlus2.withZone(DateTimeZone.UTC);
System.out.println(dateTimeUTC);

LocalDateTime localDateTimeUTC = dateTimeUTC.toLocalDateTime();
System.out.println(localDateTimeUTC);

结果:
2015-07-09T05:10:00.000+02:00
2015-07-09T03:10:00.000Z        ("Z" == Zulu tz == UTC)
2015-07-09T03:10:00.000

如您所见,时间不是您预期的“07:10”,因为 UTC+2 区域比 UTC 的 早 两个小时。转换为 UTC 减去 2 小时。

关于java - 将带时区的 Joda-Time `DateTime` 转换为不带时区的 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27381626/

相关文章:

java - 将日期与 jodatime 进行比较

java - 同一应用服务器中的 2 个 JSF/Richfaces 版本

java - 如何测试我的 jradiomenubutton 是否是我想要的值

java - 使用 SOAP 的惰性 Hibernate JPA

linux - 在系统启动时启动的文件中的日期函数 - bash

php - 为什么我不能在 php 中成功地减去两个日期时间值?

postgresql - 映射 Joda 日期时间

java - 如何使用 intellij 调试 Java 注释处理器?

c# - DateTime ToFileTime 和 ToFileTimeUtc 具有相同的输出

java - 为什么 Joda DateTimeZone 名称不返回我传入的内容?