gpt4 book ai didi

java - 如何在 Joda-Time 时间戳中保留时区?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:56 25 4
gpt4 key购买 nike

我正在解析时间戳。当我读入它们时,它们被强制使用我本地的时区(欧洲/伦敦)。我想改为保留原始时区偏移量。

scala> val fmt = org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis()

scala> val t = fmt parseDateTime ("2012-04-16T23:00:45-04:00")
t: org.joda.time.DateTime = 2012-04-17T04:00:45.000+01:00

scala> t.getDayOfMonth
res2: Int = 17

scala> fmt print t
res1: java.lang.String = 2012-04-17T04:00:45+01:00

在这个例子中,来自美国/纽约的时间戳被强制到欧洲/伦敦。当我将 DateTime 转换回字符串时,我想取回输入的原始字符串。

此外,当我询问时间戳是从一个月中的哪一天开始时,我希望它说它是从 16 日开始的(因为那是生成它的日期),而不是 17 日(即使那是日期在同一时刻在我的时区)。

我该怎么做?

最佳答案

尝试创建一个DateTimeFormatter with offset parsing enabled.这应该会导致解析的 DateTime 对象保留与最初解析的字符串的偏移量。

如果这不起作用,您可能需要单独存储时区。然后,要打印日期,您需要检索日期本身、目标时区。 Set the formatter with the desired time zone,并用它来格式化日期。

关于java - 如何在 Joda-Time 时间戳中保留时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942702/

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