まつもと ゆきひろです

In message "[ruby-list:26983] Re: Time & Date"
    on 01/01/05, " たけ (tk)" <ggb03124 / nifty.ne.jp> writes:

|date3 のようなものの需要はあると思うのですが、Time を置き換えるのはム
|リですね。
|
| Time の制限をなくそうという動きはないのでしょうか?。32ビットマシン
|でも符号付きの64ビットで実装するとか・・。

ちゅーか、TimeってのはそもそもOSの提供するtime_tの置き換えで
すからね。Timeに関してはこれの上位互換な置き換えだけしか受け
入れられないでしょう。符号つき64ビットにするのは構いません
が、負の数を使えないという事実が変えられない以上、1970年以前
を表現する方法としては期待できないのでは?

なぜ負の数が使えないかについては、ふなばさんのページを参照の
こと。

 http://www.kt.rim.or.jp/~tadf/programming-and-calendar.html

|もちろん。strptime とはそういうものですからね。書式は "%c" がデフォル
|トになってます。
|
| テキトーに解釈して欲しいなぁ、と思うのは文化の違いなのだろう。

「テキトー」というのは実にコストの高い処理です。そんなあなた
が parsedate を「オーバースペック」と呼ぶのは自己矛盾な気
が...。

|p parsedate Time.now.to_s	#	[nil, 1, 5, 2, 0, 13, nil, 5]
|p Time.now			#	Fri Jan 05 02:00:13 東京 (標準時) 2001
|
|* parsedate Time.now.to_s では情報が落ちてしまうんですね。
|* Time.now.to_s でも "2001-01-02 02:00:13 JST" が良いと思うんだけどなぁ。

お使いのOSの strftime に文句を言ってください。

私自身は「東京 (標準時)」がタイムゾーンの表現として適切だと
はとても思えませんが、OSから「タイムゾーンはこれだ」と伝えら
れたら逆らえません。

考えられる対策としては、OSに頼らず、全世界のタイムゾーンデー
タベースを持つtime関連のルーチンを自作することですが、私自身
の手には余ります。これにより1970年という妙な制約を取り除くこ
とができるのも確かですが、ちょっと勘弁してください。

                                まつもと ゆきひろ /:|)