タイムゾーン

今の仕事で開発しているシステムは、Micirosoft の Azure 上で動かしている。で、これは Azure に限ったことではないがクラウド上で動作するサーバーは基本的にタイムゾーンUTC で動作している。で、日本国内での使用を想定している今開発しているシステムで表示したり入力されたりする日時は当然、JST であるため、ローカルタイムで動いているブラウザと、UTC で動いているサーバーとの間で変換してやる必要がある。Java Script の Date型のオブジェクトを JSONに変換するとISO8601型式の文字列になるため、これをASP.NETで受け取る分にはほとんど何も考えることはないのだが、ASP.NET側で生成する VIew で日時を扱う場合はブラウザ側のタイムゾーンに合わせて変換してやらなければならないし、そもそもサーバーではブラウザのタイムゾーンを知る由もないので何らかの取り決めが必要になる。サーバーからは常にUTCの日付をISO8601な文字列でブラウザに渡すようにして、実際の表示はすべてブラウザ側でローカルタイムに変換して表示するようにすれば良いのだが、必ずしもその手が使える訳ではないのでちと頭を使わねばならない。