DateTimeとAndroid
時刻表示したければDateTime.Nowで時間取ってくればいいと考えるじゃないですか。
実装するじゃないですか。
……なぜか9時間前の時刻が出力されるじゃないですか。
あちゃー、時刻設定がUTCになってたかと確認するじゃないですか。
あれ? ちゃんとJSTになってる。
さて、どうするか。
どうしてこうなってるんだ?
どーもコレ、デバイズ自体がタイムゾーン設定関係なく内部ではローカル時刻=UTCとして処理してて、表示時に設定に合わせて+9時間してるのかなって気配が。JST設定してるのにJST時刻が取得できないからね……。
対策
まぁ、今回はラクなものです。
向こうがUTCベースで動いてるからおかしくなるなら、こっちもUTCで取得してから変換してやれば最初から問題は起きないです。はい。
DateTime.UtcNowでUTCを取得して、AddHours(9)。
完成。
……それにしても、流石に妙な挙動をし過ぎでは。
商業アプリはこんな訳分からん動きにどう対応しているのか……。(Yahooの乗り換えアプリは普通にデバイズの表示と同じ時刻を取得していた)
さすがにプロがこんな対症療法みたいな対応してるとは考えにくいしなぁ。