ふなばです。

>|考えるとすれば、Time  を利用して日を勘定するために  86400 (24*60*60)
>|で割る、なんてことはしてはいけないと、利用者に警告しておかなければいけ
>|ないように思います (どこかで見たような)。
>
>は言えますね.どこかに書いておこう.

どうも。

>|もちろん、 Marshal についても考慮しないといけいない。
>
>しかし,一方 the epoch からの秒数という情報は十分普遍的なの
>で(tm構造体の方は書き出しません),定義から言えばMarshalの実
>装は考慮する必要は無いはずです.

うーん、思わぬところでハマることもあるかと思ったんですが。エポックは同
じでも、足の速さが違うわけですから。

時刻の本質は序数で、整数と判ってても、普通の人間はそのように考えて行動
していませんよね。壁掛け時計をみて生活している人間に合せて計算機はプロ
グラムされるので、一見、ただの整数ですが、それが解釈の違いで、大晦日に
も元旦にもなるというのは結構大きいのではないかと思うわけです。

で、気にしてたのは、たとえば、ネットワークなどで矛盾する可能性があるか
なあということでした。実際には殆ど考えなくてよいのかなあと思いますが。

なので、この件は、Ruby 自身がなんとかするのでなく、

>しかし,そのマシンのlocaltime(3)などが閏秒を考慮しているかど
>うかで日付がずれるのはたしかなので,この件もどこかに書いてお
>きましょう.

ということでいいのかもしれませんね。

>そうですね.実際に関数名がgmtimeだったりしますしね.適切な注
>と言うのはどういう内容になりますかね.GMTからUTCに呼び名が変
>更された経緯を知らないので,私には適切な注が付けられそうにあ
>りません.

おそらく、UTC にしょうとなったのは、「グリニッジ」だからでしょう。標準
時の呼称として相応しくないということです。実際に定義そのものが変り、グ
リニッジとはあまり関係がなくなってしまったということもあるでしょうが、
ハッキリいえば、大多数の国が、名前そのものを気に入らなかったんじゃない
でしょうか :-)

フランスは実際には  GMT というべきものをつかいはじめても、なかなか GMT
とは呼ぼうとしなかったそうです (ひょっとして今も?)。逆にイギリスは UTC
をつかいたがらなかったらしい。

UTC は英語では、Coordinated Universal Time、
フランス語では Temps universel coordonn\'{e} で、UTC といういいかたは
英国とフランスで張り合った、じゃなくて、譲りあった結果のようです。
日本語では協定世界時といっています。

# 何時から UTC といういいかたがあるのか知りませんが、cal(1) の仕様といい、
# UNIX のこのあたりの仕様は、一体に英国式になっているように思えますねえ
# (勘繰りすぎ?)。

ということですが...。

僕には GMT をつかいつづける理由がないので、 UTC にしたほうがいいと思い
ますが、もし、GMT のほうが通りがよさそうだから、そうしているのだと考え
ているのなら、GMT  のかわりに UTC にして、注釈をつけるようにしたほうが
よいと思いました。しかしながら、とくに GMT に注釈はなかったように、UTC
にもいらないようにも思います。殆どの人がすで了解しているような気がする
からです (そうでもないのかな?)。

他はどうしているか、ちょっと調べてみると、Perl ではとくに説明はなし。
Python のリファレンスマニュアルでも、

UTC is Coordinated Universal Time (formerly known as Greenwich Mean
Time).  The acronym UTC is not a mistake but a compromise between
English and French.

だけみたい。書くとしてもこんなもんでいいのかも。

--Tadayoshi Funaba