gpt4 book ai didi

java zoneddatetime : keep timezone ID when doing calculations

转载 作者:行者123 更新时间:2023-12-02 09:34:24 35 4
gpt4 key购买 nike

我有一些无痛的小脚本代码(Groovy 方言,它本身基于 Java),可以使用区域 ID 解析一些时间戳。但是,当进行涉及跨越夏令时边界的计算时,时区 ID 会发生变化。

可重现的示例:

def form=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss (zzz)")
in=ZonedDateTime.parse(input, form)
out_plusweek=in.plusHours(168).format(form)

对于大多数输入,我处理的结果都很好:2019-08-27 11:05:00 (Europe/Amsterdam) 给出 2019-09-03 11:05:00 (Europe/Amsterdam),相似日期相同.

但是,如果我输入 2019-03-29 11:05:00 (Europe/Amsterdam),输出变量将设置为 2019-04-05 12:05: 00(欧洲中部夏令时间)

该值本身没问题,但时区指定更改为 CEST(中欧夏令时间)。它是正确的,但我的脚本中的下一步无法再解析,该脚本需要像 Europe/Amsterdam

这样的 id

那么我如何获取2019-04-05 12:05:00(欧洲/阿姆斯特丹)

最佳答案

我建议使用不同的格式模式来打印结果。尝试使用 VV 而不是 zzz

根据the documentation小写的 z 将为您提供时区名称,例如太平洋标准时间或 PST。对于时区 ID(例如 America/Los_Angeles),您需要大写的 V。并且:

If the count of letters is two, then the time-zone ID is output. Any other count of letters throws IllegalArgumentException.

关于java zoneddatetime : keep timezone ID when doing calculations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57671450/

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