-2
バックエンドでUTC時刻を生成して、AndroidアプリケーションにWebソケットを使用して送信しています。Java JodaTimeでタイムゾーン情報が正しくありません
問題は次のとおりです。私は日付を表示すると3時間後になります。なぜなら、自分の電話機が+3タイムゾーンにあると仮定しているからです。
以下は、バックエンドコードとAndroidコードの両方からの抜粋です。
バックエンドのコード(それは私が瞬間ライブラリを使用してUTCの日付を生成しています方法です):私のAndroidのアプリケーションで
let d = moment.utc().toISOString();
これは私がそれを処理しています方法です:
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() 'の結果)をチェックしましたか? –
あなたは期待されているアウトプットと比べて何を得ていますか? –
引数なしの 'toDate()'が暗黙的にシステムタイムゾーン(Joda-Timeのデータ)を使用することを恐れるので、 'dtf.parseLocalDateTime(sendDate).toDate(DateTimeZone.UTC)'を試してください。そして、あなたの 'LocalDateTime'は明らかにUTC入力に基づいています... –