ふなばです。

>>> Sat, 13 Mar 1999 00:30:21 +0900 の刻に 「ikarashi」、すなわち
>>> ikarashi / itlb.te.noda.sut.ac.jp(IKARASHI Akira) 氏曰く

ikarashi> タイムゾーンというものは、実行中に頻繁に変更されるものではなく、
ikarashi> 漢字コードのようにアプリケーション中でほぼ固定で使用されるもの
ikarashi> だろうという仮定で、Timeインスタンスが local, GMTといった状態を
ikarashi> 持つのではなく、グローバル変数、仮りに $X とすると、

ikarashi> $X 
ikarashi> rubyの動作するタイムゾーン。文字列で指定し、nilの場合は実行環境の
ikarashi> ローカルタイムとする。デフォルトは nil です。

ikarashi> ぐらいのもので、例えば

ikarashi> $X == nil ではタイムゾーンがローカルタイムに設定されている状態。
ikarashi> $X == "GMT" ではタイムゾーンが協定世界時に設定されている状態。
ikarashi> $X == "JST" ではタイムゾーンが日本標準時に設定されている状態。

ikarashi> として動作するものを導入するのはどうでしょう?という提案でした。

先ず、現状では Time はタイムゾーンを解釈していません。それができれば、
Marshal.dump でもタイムゾーンを保存していると思います。UTC と地方時の
違いは、すなわち  gmtime(3) と localtime(3) の違いです。それ以上のこと
はしていません。

UTC か、地方時か、だけなら、なんらかの方法で、デフォルトのデフォルトを
設定することはできるかもしれません。まつもとさんにきいてみましょう!

で、それはそれで必要だったら、あってもよいと思うんですが、僕がいいたかっ
たのは別のことでした。

tadf> 現時点では、必要なら利用者が管理する、というか、自明であるハズだという
tadf> 態度なのかな。判定メソッドを用意しても、それは基本的に変えられないです
tadf> よね。ですが、とくに隠さなきゃならない理由がなく、必要とする人がいれば、
tadf> あってもよいのかもしれません (なんか当たり前のこといっているな)。

これが少し解りにくかったと思うので、もう少し説明しますと、 Time にとっ
て、我々が普段つかっている時刻表現は便宜的なものだし、その表現に基いて
演算することに特別な配慮はないです。たとえば、Mashal.dump したらもうタ
イムゾーンは関係ないです。 そういうわけで、時刻そのものでなく、 時刻の
表現に関わる演算をする場合は、利用者のほうで、なんらかの配慮が必要な場
面もあり得る。判定メソッドとは関係なくそういうこともあるね、という話で
すね。

ふなば ただよし