今手掛けているシステムで、生年月日に関する機能を加えたところ、ある一部の生年月日で、登録した生年月日マイナス1日で表示される現象が発生してしまいました。
なんで一部の人だけ?
システムのバグ?
どういった条件で発生するの?
解決まで長引くと厄介だな~って思いながらいろいろ調べてみると、どうやら戦後、少しの期間だけ施行されていたサマータイムの時期が関係していることを発見!
以下の期間の生年月日だった人が自動的にマイナス1時間で処理されてしまったようです。
1948年5月2日 1:00~9月11日 23:59
1949年4月3日 1:00~9月10日 23:59
1950年5月7日 1:00~9月9日 23:59
1951年5月6日 1:00~9月8日 23:59
なんだ~、昔、日本でも施行されたサマータイム(当時はサンマ―タイム)が悪さしてたのかよ~。
つまり「1949年8月2日」で登録したのに、システム上の処理では「1949年8月1日(の23時00分)」になっていた、ということ。
表示上はYYYYMMDDなんだけど、裏側ではYYYYMMDD HHMMSS形式の場合は、こういった問題が起こるんだねー。
後から考えると単純なミスってわかるけど、その昔、サマータイムがあったことなどハナから気にかけてないと、こういったことが起こるのね。
勉強になりました。
っちゅーか、オリンピックに向けてサマータイム、なんて話があったけど、システム屋さんががこぞって「ムリ~っ」て言うのがよくわかりました。