LoginSignup
1
0

More than 5 years have passed since last update.

一部のAndroid(ZenFone2Laserで確認)でDateTimeが妙な挙動をする件と対策

Posted at

DateTimeとAndroid

時刻表示したければDateTime.Nowで時間取ってくればいいと考えるじゃないですか。
実装するじゃないですか。
……なぜか9時間前の時刻が出力されるじゃないですか。
あちゃー、時刻設定がUTCになってたかと確認するじゃないですか。
あれ? ちゃんとJSTになってる。

さて、どうするか。

どうしてこうなってるんだ?

どーもコレ、デバイズ自体がタイムゾーン設定関係なく内部ではローカル時刻=UTCとして処理してて、表示時に設定に合わせて+9時間してるのかなって気配が。JST設定してるのにJST時刻が取得できないからね……。

対策

まぁ、今回はラクなものです。
向こうがUTCベースで動いてるからおかしくなるなら、こっちもUTCで取得してから変換してやれば最初から問題は起きないです。はい。

DateTime.UtcNowでUTCを取得して、AddHours(9)。
完成。

……それにしても、流石に妙な挙動をし過ぎでは。
商業アプリはこんな訳分からん動きにどう対応しているのか……。(Yahooの乗り換えアプリは普通にデバイズの表示と同じ時刻を取得していた)
さすがにプロがこんな対症療法みたいな対応してるとは考えにくいしなぁ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0