簡體   English   中英

如何在Joda-Time時間戳中保留時區?

[英]How to preserve time zone in Joda-Time timestamp?

我正在解析時間戳。 當我讀到它們時,它們被迫到我當地的時區(歐洲/倫敦)。我想保留原來的時區偏移。

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

在這個例子中,來自America / New_York的時間戳被強制到歐洲/倫敦。 當我將DateTime轉換回String時,我希望找回我輸入的原始字符串。

另外,當我問時間戳它的月份是哪一天時,我希望它說是從16日開始(因為這是它生成的地方的日期),而不是第17天(盡管那是日期是什么)在同一時刻的我的時區)。

我該怎么做呢?

嘗試創建啟用了偏移解析DateTimeFormatter 這應該導致解析的DateTime對象保留最初解析的字符串的偏移量。

如果這不起作用,您可能需要單獨存儲時區。 然后,要打印日期,您需要檢索日期本身目標時區。 使用所需的時區設置格式化程序,並使用它來格式化日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM