夏時間。エンジニアの観点から。

夏時間、Summer TimeもしくはDaylight Saving Timeの導入について今秋の臨時国会までに提出し、早ければ来年夏からの導入をめざすらしい。

カーボンオフセット等も考慮されているようだけど、本当に意味・効果があるのかは疑問とする資料も山ほどあるし、勤務時間が曖昧かつサービス残業が常態化している日本では勤務時間の延長となり、逆効果ではないか?との指摘もいっぱいあるようです。

既にこの『夏時間』はかなり前からアメリカやEU諸国を始め、導入されている国は多数あります。日本でも戦後アメリカの統制化においてほんの数年ですが、夏時間が導入された実績があります。

現在案として提出されているところは、3月の最終日曜日から10月の最終日曜日までを夏時間として制定し、この間だけ時間を1時間進め、夏時間終了後に1時間の戻しを行うというもの。馴染みがなく非常にわかりにくいですね。

今のところ何時から切り替えを行い、何時に戻すのかはまだ聞こえてこなため、以下では2時を切り替え時間として、時間の進み方を目に見える形でかいてみます。


日本標準時の 2009/03/29 01:58
日本標準時の 2009/03/29 01:59
日本標準時夏時間の 2009/03/29 03:00 ←2時とならず、1時間進めて3時になる。この日は23時間しかない!
日本標準時夏時間の 2009/03/29 03:01
:
:
日本標準時夏時間の 2009/10/25 01:58
日本標準時夏時間の 2009/10/25 01:59
日本標準時の 2009/10/25 01:00 ←2時とならず、1時間戻して1時になる。この日は25時間ある!
日本標準時の 2009/10/25 01:01

3/29の2時台がない。そして、10/25の1時が2度やってくる。あれれ?となること請け合いですね。但し、前置詞部分の『日本標準時の』と『日本標準時夏時間の』にも着目して下さい。ここで区別をすることができます。

さて、ここで疑問となるのは、私の時計の時刻はどうするべきか。明日は何時に起きればいいのやら?でしょう。夏時間に合わせ時刻を進め、夏時間の終了に合わせ時刻を戻す必要が出てきますし、切り替え日には睡眠時間が1時間削られ、戻し日には睡眠時間が1時間増えるという(悲しい?)事となります。

まぁ、詳しくは夏時間 - Wikipedia等をお読み下さいませ。


ここから少し突っ込んだ話し。

時刻の考え方、仕組みには上手い機構というかトリックが隠されており、世界協定時(UTC)と日本標準時(JST)と日本標準時夏時間(JST-JDT)という言葉が理解できれば何がどうなるかの殆どは理解できると思います。この夏時間の仕掛けは『表示上の時計=実生活上の時計』にのみ起きる変化だという事が見えてくると思います。時刻の素となる、世界協定時には『何ら変化』はありません。

時間の考え方としては、?.世界協定時(UTC)によって世界標準時を規定し、?.各国の標準時はこれに対する差分(オフセット)で表記される形とし、?.日本の場合はUTCに対し9時間足したものを日本標準時(JST)する、となっています。
これらをバックボーンに、?.夏時間の考え方は、各国の標準時に対して更に差分を決める、というものでしかありません。世界協定時にはなんら変化をもたらさない為、『表示上の時計』という考え方や見方があります。

コンピュータにおける時刻の扱いはこれらを元に実装されており、Windowsであればパッチの提供と『自動的に夏時間を調整する。』で、UNIXJava等であればタイムゾーンデータベースへの変更とタイムゾーンの『JST-9からJST-9JDTへの移行』を行えば対処できることでしょう。

あぁ、だらだらと長文の割に中身がない…