给定一个 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/