Emacsは標準時と夏時間の違いを認識しています。日の出、日の入り、至点、分点、および月の満ち欠けに示される時刻には、それが考慮されています。夏時間の規則は地域によって異なりますし、歴史的にも年によって異なってきました。適切に処理を行うためには、Emacsはどの規則を適用すべきかを知る必要があります。
一部のオペレーティングシステムでは、現在地に適用されるルールを管理しており、こうしたシステムではEmacsが必要な情報をシステムから自動的に取得します。これらの情報の一部または全部が不足している場合、Emacsはマサチューセッツ州ケンブリッジで現在使用されているルールを用いてその不足分を補います。その結果得られたルールが希望通りでない場合は、特定の変数
calendar-daylight-savings-starts および calendar-daylight-savings-ends
を設定することで、Emacsに使用するルールを指定できます。
これらの値は、変数 year を参照する Lisp
式とし、夏時間が開始または(それぞれ)終了するグレゴリオ暦の日付をリスト (month day year) の形式で評価する必要があります。お住まいの地域で夏時間が導入されていない場合は、値は
nil とします。
Emacsはこれらの式を用いて、祝日リストの夏時間開始日の決定や、太陽・月の計算における時刻の補正を行います。
マサチューセッツ州ケンブリッジの値は以下の通りです。
(calendar-nth-named-day 2 0 3 year) (calendar-nth-named-day 1 0 11 year)
つまり、year
で指定された年の3月(March)の2回目の0日目(日曜日)と、その年の11月(November)の最初の日曜日です。
もしサマータイムが10月1日開始に変更された場合、calendar-daylight-savings-starts を次のように設定することになります。
(list 10 1 year)
お住まいの地域で夏時間が適用されない場合、またはすべての時刻を標準時で表示したい場合は、calendar-daylight-savings-starts と calendar-daylight-savings-ends を nil に設定してください。
変数 calendar-daylight-time-offset
は、夏時間と標準時の差を分単位で表します。マサチューセッツ州ケンブリッジの値は 60 です。
最後に、2つの変数 calendar-daylight-savings-starts-time と
calendar-daylight-savings-ends-time
は、現地時間の午前0時から何分後に夏時間への移行および復帰を行うかを指定します。マサチューセッツ州ケンブリッジでは、両変数の値はともに120です。