-2
我在後端生成一些UTC時間,並使用websockets將它發送到我的Android應用程序。錯誤的時區信息與Java JodaTime
問題是:當我顯示日期時,它的背後是3小時,這是因爲我假設我的手機處於+3時區。
下面是來自後臺代碼和Android代碼的摘錄。
後端代碼(這就是如何我現在用的那一刻庫生成UTC日期):
let d = moment.utc().toISOString();
在我的Android應用程序,這是怎麼了處理它:
String sendDate = "2017-04-19T15:41:36.758Z"; //this is an example server response
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
dtf.parseLocalDateTime(sendDate).toDate()
的問題是UTC日期未正確顯示/轉換爲手機當前所在的時區,因此日期始終延遲3小時。
我錯過了什麼?
你檢查手機的默認'TimeZone'('DateTimeZone.getDefault()'的結果)? – 2017-04-19 16:30:21
什麼是你得到輸出vs預期輸出? – 2017-04-19 16:44:37
嘗試'dtf.parseLocalDateTime(sendDate).toDate(DateTimeZone.UTC)',因爲我害怕沒有參數的'toDate()'隱式使用系統時區(Joda-Time的數據)。並且你的'LocalDateTime'顯然是基於UTC輸入的...... –