Azureにおいて、日時に取り扱いは注意が必要
現在日時を求めるときDateTime.Nowで取得すると、UTC基準の日時で取得される
そのため、時差の補正を行う必要がある。
これを回避するために、現在日時を特定の場所(たとえば、日本など)のタイムゾーンで保管しておくと
補正の必要がなくなる(ただし、ワールドワイドにサイトを展開する場合は、その限りでない)
そこで、DateTime.Nowで取得しているところを
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now.ToUniversalTime(), "Tokyo Standard Time");
に変更する。
懸案事項
まだ、よくわかっていないが、ストレージに保管されたテーブルの内容を確認すると
(VS2010のサーバーエクプローラーで)、上記の方法で、日時を保管すると
現在日時+9時間で保管されている?????
ただし、これでGridViewで内容を表示するとちゃんと現在日時として表示できている
DateTime.Nowで保管すると、ストレージの内容は、現在日時になっているが、
GridViewで表示すると、-9時間された日時が出力される?????
なんで、このような動作になってしまうか、現時点不明
もうひとつ、わからないところは、Timestampのフィールドは、-9時間されてストレージに保管されていて
GridViewにこのまま出力すると、-9時間された内容そのままで出力される?????
上記のパターンでいけば、-18時間されて出力されていいはずがそうならない!!なぜか不明
まあ、どっか勘違いしていると思われるが。。。。。。。

PR