DateTime&Locale

DateTime 型のカラムへ insert した値がずれる、という不具合が起きていた。不具合といっても非常に内輪でしか発生していなくて、ローカルマシンでも再現しない、ある特定のマシンでしか起こらない現象だった。

具体的には。 18日 00:00:00 と設定したはずなのに、なぜか実際の値は 17日 08:00:00 となっている。

しばらく原因が分からなくて謎だった。ただしずれ幅はいつも一定なもよう。

で。何が違ったかというとロケールだった。

問題のマシンでは英語版 Windows が動いていたのだけど、ロケールまで U.S. になっていた。 Pacific Time (-0800) 。でもその他のマシンはもちろん Japan standard time で +0900 。その差だった。

実際ロケールを変更したら直った。

ただ、まだ気に障るのが、他にも同じデータベース、違うテーブルに DateTime 型のカラムはあるのに、この現象が起こらないところもあったこと。何が違うのだろう。