[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
timezone (was Re: [gnu.emacs.sources] Shimbun for heise online)
>>>>> In [emacs-w3m : No.06628] 土屋さん wrote:
>>>;; FIXME: timezone is always wrong, slightly better than the
>>>;; default "+0900"
>>>"+0000"))))))
山> これは何とかしないと国際化の枷になるかもしれません。
>> これ,具体的にはどういう問題を懸念されていますか?
ごめんなさい、前回この言い訳として書いたことはウソです。^^;;
ぼくは 3月8日の shimbun.el の変更で、記事の Date ヘッダに曜日の
表示を追加するようにしたのですが、ロンドンより西の国では一日前の
曜日になってしまう場合があることに気がつきました。
(current-time-string (encode-time 0 0 0 day month year "+0000"))
year, day, month は web コンテンツから抽出した年月日です。ここで
encode-time が返す UTC の時刻を、current-time-string でローカル
時刻の文字列に変換してしまっているというおそまつ。直しました。
ところで、どんな文字列が encode-time の第7引数として有効だか知っ
ていましたか? 日本標準時を指定するための "JST" というのは、おそ
らく多くの環境で無効です。実は "+0000" もだめなんですが、無効な
文字列を与えられたとき encode-time はデフォルトで UTC 基準で動作
します。
これに関連して、w3m-antenna.el で encode-time の第7引数に "JST"
を与えていますが、これが正しく日本標準時として扱われる環境がある
かもしれないし、ぼくの場合のように UTC になってしまう場合もあり
ます。問題無いですか?
encode-time の docstring から抜粋
---------------------------------
ZONE defaults to the current time zone rule. This can
be a string or t (as from `set-time-zone-rule'), or it can be a list
(as from `current-time-zone') or an integer (as from `decode-time')
applied without consideration for daylight savings time.
日本標準時を指定するための値として正しいのは、
/usr/share/zoneinfo/ などにあるファイル名 (らしい)
nil (日本でだけ)
car 項が 32400 である list (cdr は何でも良いし無くても可)
数字の 32400
です。ぼくの場合 /usr/share/zoneinfo/ に JST というファイルは無
いけれども Japan はあるので、それは有効です。
;; ついでに書くと、set-time-zone-rule の引数に "JST" や "+0900"
;; などを与えると UTC になってしまい、日本標準時を設定できるのは
;; "Japan" だけでした。
そういうわけで、w3m-antenna.el では "JST" の代わりに 32400 を使
うのが確実です。とは言え、今まで UTC で動作していた人の環境では
どうなるんでしょう...
--
Katsumi Yamaoka <yamaoka@jpl.org>