サマータイムむりです

サマータイムが話題ですが、実際のところサマータイム対応は不可能なんで無視でいいんじゃないですかねぇ。まあ制度的に強行したらデジタル機器全般が大混乱が予想されるので、それはそれでどうなっちゃうのか見てみたい気もする。


不可能だと思う理由をつらつらと


デジタル機器は世界標準時刻で時刻を管理している

特にこれはIT系な人じゃないとあんまり馴染みがないと思うのですが、コンピュータは内部的に世界標準時刻(以下UTC)を持っていて、UTCに9時間加えたものを日本の時刻ですよーといって皆さんのディスプレイに表示しているんですね。このように世界の地域によって時刻が違うことをタイムゾーンといって、UTCに9時間加えたのが日本のタイムゾーンになってます。


たとえばアナログ時計でサマータイム対応しようと思ったら時計を2時間遅らせればいいです。でもコンピュータでは同じように時計を2時間ずらすということは出来ないんですね。なぜかというとコンピュータはUTCを管理しているので、日本のサマータイムに合わせてコンピュータの時刻を2時間ずらすと、コンピュータ内部のUTCが正しいものから2時間ずれてしまうことになるのです。つまり日本の時刻は正しいけど、そのコンピュータが管理している日本以外の全ての国の時刻が間違った状態になるということです。


まあ家のPCの時間を2時間ずらすくらいだとそこまで大きな影響はないかもしれない(使えなくなるアプリはあるかもしれない)けど、日本中のデジタル機器が管理している海外の時間が全て間違った状態になるってどう考えてもやばいので、コンピュータの時計を2時間ずらすってことは出来ないんですね。


じゃあどうするかっていうと、「日本(サマータイム)」という新しいタイムゾーンを定義してあげる必要があります。それで今までUTCに9時間足していたところを11時間足してあげるように変更するんですね。しかしここで問題なのは、UTCに9時間足す処理って時刻を扱う場合はわりとありふれた処理なので、あらゆるシステムがやっている可能性があります。そのため、OS含め現存する全てのソースコードを洗い直して9時間加えているところを探し出して、そこを11時間加えるように修正してあげる必要があるんですね。


ちなみにソースコードというのは、Googleというたった1企業が作ったものだけでテキストファイルにして20億行あるらしいです。大変なことです。

gigazine.net


影響は日本だけにとどまらない

アナログ時計の時刻をずらすならみんなが手元にある時計を直せばいいですよね。でもデジタル機器は通信/Web/金融などいろいろな分野で全世界に開かれているのです。全世界に開かれているとはどういうことかというと、海外で海外の人たちが使っているシステムも日本時間を管理しているものがたくさんあるっていうことです。当然、海外のシステムも全て対応しないとバグります。日本は今すぐに全世界に向けて来年2時間ずらしまーす直してねてへぺろ☆(・ω<)と発信する必要があります。


そもそもとして変更不可能なシステムもたくさんある

正直なところ10年前に作ったきり今でもそのまま動かしてるシステムとかもたくさんあると思うのですが、そういうのってエコシステムの変化により今ではビルドするのも難しい状態になっていることが多いですよね。10年前はこのURLからこのライブラリダウンロードして来てたけど、今はもう消されちゃってる!みたいなのね。

もっと言えば小さい会社が作ったり個人が作ったりしたものだと、今となってはソースコードもどこに行ったのかわからんみたいなのもたくさんあると思いますね。完全に詰んだ状態です。




とまあ、サマータイムは無理すぎるので気にしないことにしました。やる気はあるよ。2時間ずれるって素晴らしい。こんなに嬉しいことはない。でも無理。