gpt4 book ai didi

java - 将日期从一个时区转换为本地时区

转载 作者:行者123 更新时间:2023-12-01 10:04:14 26 4
gpt4 key购买 nike

我正在使用 Java 8 并尝试将时间戳从一个时区转换为另一个时区。时间戳将位于用户的时区,例如

//  2016-04-11T12:00:00Z
long sourceTime = 1460372400000L;
timezoneConverter(sourceTime, "America/New_York");

但是,当使用 Joda 时间或 Java 8 LocalDateTime/Instant 时,当我传递时间戳时,它会调整为用户的时区 - 我不需要发生这种情况,因为它已经在用户的时区中(所有时间戳将以用户本地时间发送)。

ZonedDateTime zdt = 
ZonedDateTime.ofInstant(Instant.ofEpochMilli(1460372400000L),
ZoneId.of("America/New_York"))

结果

2016-04-11T07:00-04:00[America/New_York]

而不是

2016-04-11T12:00-04:00[America/New_York]

有什么办法可以解决这个问题吗?

谢谢!

最佳答案

1460372400000L2016 年 4 月 11 日星期一 11:00:00 GMT2016 年 4 月 11 日星期一 12:00:00 BST

2016-04-11T11:00:00Z2016-04-11T07:00-04:00[America/New_York],因此您是一次性转换的区域到另一个区域。

如果您只需要本地时区,我建议您使用LocalDateTime

LocalDateTime dt = LocalDateTime.ofEpochSecond(1460376000L, 0 ,  ZoneOffset.ofHours(0));
System.out.println(dt);

打印

2016-04-11T12:00

关于java - 将日期从一个时区转换为本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36568802/

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