gpt4 book ai didi

java - 将 UTC 时间戳转换为任意时区

转载 作者:行者123 更新时间:2023-12-01 13:11:25 27 4
gpt4 key购买 nike

例如,我收到 UTC 格式的 java.sql.Timestamp:

2014-04-03 08:25:20.0

我知道,这个时间戳是 UTC。我知道这个时间戳的目标时区。示例:

Europe/Berlin

现在我想将 UTC 时间戳转换为本地化时间戳。当然,需要正确的夏令时。

到目前为止我的尝试:

println(msg.timestamp)
println(new DateTime(msg.timestamp))
val storeTz = DateTimeZone.forID(store.timezone)
println(new DateTime(msg.timestamp, storeTz))
val localTimestamp = new DateTime(msg.timestamp).withZone(storeTz)
println(localTimestamp)

打印:

2014-04-03 08:25:20.0
2014-04-03T08:25:20.000+02:00
2014-04-03T07:25:20.000+01:00
2014-04-03T07:25:20.000+01:00

正确的本地化时间戳不应该是:

2014-04-03T10:25:20.000+02:00

最佳答案

我认为这可能有效

println(msg.timestamp)
println(new DateTime(msg.timestamp))
val storeTz = DateTimeZone.forID(store.timezone)
println(new DateTime(msg.timestamp, storeTz))
val localTimestamp = new DateTime(msg.timestamp).withZoneRetainFields(DateTimeZone.UTC).toDateTime(storeTz)
println(localTimestamp)

关于java - 将 UTC 时间戳转换为任意时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22832248/

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