From: Tadayoshi Funaba Date: 1998-10-09T08:46:22+09:00 Subject: [ruby-list:9898] Re: man-1.1/Marshal.html ふなばです。 >|それから、TimeオブジェクトはMarshal.dumpできないですが >|できるとちょっと嬉しいです、、、、m(_ _)m > >これもできるようにしておきましょう.どうやって実現するんだっ >たかな…,もう忘れてる. Ruby の Time ですが、1970年 1月1日からの秒数ということが基本にになって いますが、もう少し定義をハッキリさせないといけないんじゃないかって気が しています。 処理系が time(3) などに依存していれば、結局、tzfile(5) によってどうに でもなるわけで、その環境を離れてしまえば、1970年1月1日からの秒数という だけでは、意味がなくなってしまうのではないかと思うわけです。 たしか、 Ruby は閏秒アリでも大丈夫なようにしていたと思いますが、どうで したっけ。 Perl では時刻は閏秒を含まないって宣言しちゃっているみたいで すが (どのようにして、それを保証しているのだろうか)。 考えるとすれば、Time を利用して日を勘定するために 86400 (24*60*60) で割る、なんてことはしてはいけないと、利用者に警告しておかなければいけ ないように思います (どこかで見たような)。もちろん、 Marshal についても 考慮しないといけいない。 考えないのならば、 考えないで、 time(3) とは、そのあたりが違う (かもし れない) ということを明らかにしておくべき、 と思います。 そうしないと混 乱しそうです。 ついでですが、マニュアルをみると、GMT といういいかたがありますが、旧い いいかたなので、 UTC のほうがいいように思います。計算機では GMT という 表現が残ってしまったので、そのほうが通りがよい、ということもあるでしょ うから、必要なら、注釈でもつけるというのはどうでしょう。 あと、 「整数 の場合は00:00:00 GMT, January 1, 1970 からの秒数とみなします」と、突然 が英語が混じっているのですが、そうする必要はないと思うので、日本語にし ませんか。 --Tadayoshi Funaba