作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在解析时间戳。当我读入它们时,它们被强制使用我本地的时区(欧洲/伦敦)。我想改为保留原始时区偏移量。
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/
我是一名优秀的程序员,十分优秀!