ふなばです。 うーん、%c は ctime() と同じという解釈のものもあるし、そうでないのもあ るようです。ハッキリしたことを書いてあるマニュアルは見たことないです。 ANSI C では仰るような解釈みたいですね。 で、 今回のこの話は、そのことではなくて、strftime() の %d のことです。 to_s は、由緒正しい date(1) の書式ということですが、time.c を見ると、 strftime() に "%a %b %d %H:%M:%S %Z %Y" という書式が与えられています。 %d は 01-31 なんです。 1-31 じゃないんです。いくつかの strftime() には %e があって、これが 1-31 なんです。 Thu Jul 3 01:02:03 JST 1997 (date) Thu Jul 03 01:02:03 JST 1997 (ruby) GNU date ではどうしているのかと、ソースをみてみると、堂々と %e をつかっ ていました。コメントによると、素の ANSI C にはないが、POSIX にあるとい うことらしい。GNU date では configure script の執拗な走査で、不合格者 は、GNU strftime() に置き換えられてしまいます。 これは date(1) じゃないんで、Ruby でそこまですべきものでもないような気 がしますが。date(1) の書式の話もあったので、念のため。 --Tadayoshi Funaba