>|とりあえず、由緒正しい (?)  date (1)、asctime(3)、RFC 822 スタイルなど
>|には対応したつもりです。

昨日、 気がついたのですが、date (1) でタイムゾーンがうまくとれない場合
があるようです。一応、訂正しておきます。

--- scandate.rb.orig	Mon Feb  2 23:12:28 1998
+++ scandate.rb	Mon Feb  2 23:12:28 1998
@@ -13,14 +13,17 @@
     if date.sub!(/(#{DAYPAT})[a-z]*,?/i, ' ')
       wday = DAYS[$1.downcase]
     end
-    if date.sub!(/(\d+):(\d+)(?::(\d+))?(?:\s+([A-Z]{1,3}|[-+]\d{4}))?/, ' ')
+    if date.sub!(/(\d+):(\d+)(?::(\d+))?\s*(am|pm)?\s*(?:\s+([a-z]{1,4}(?:\s+[a-z]{1,4})|[-+]\d{4}))?/i, ' ')
       hour = $1.to_i
       min = $2.to_i
       if $3
 	sec = $3.to_i
       end
-      if $4
-	zone = $4
+      if $4 == 'pm'
+	hour += 12
+      end
+      if $5
+	zone = $5
       end
     end
     if date.sub!(/(\d+)\S*\s+(#{MONTHPAT})\S*(?:\s+(\d+))?/i, ' ')
@@ -35,7 +38,7 @@
       if $3
 	year = $3.to_i
       end
-    elsif date.sub!(/(\d\d?)\/(\d\d?)(?:\/(\d+))/, ' ')
+    elsif date.sub!(/(\d+)\/(\d+)(?:\/(\d+))/, ' ')
       mon = $1.to_i
       mday = $2.to_i
       if $3

># 私に好かれても,嬉しくないかも知れませんが ^^;;;

とても嬉しいです :-)

>う,確かに.asctimeという以上asctime(3)にあわせるべきのよう
>な気もします.どうしようかな.

よく事情がわからないのですが、UNIX において、asctime(3) は日付の書式の
標準だったと思います (徐々に崩れつつあるようで、locale  で書式を変えて
しまう  asctime(3) もあるわけで)。昔のソフトウェアは ctime(3) や、それ
から切り出したものをよく使っていたような気がします (本当は昔のことは知
りません :-)。

マニュアルには大抵、 asctime(3) が生成する 26 文字の例が載っています。
GNU Emacs Lisp のマニュアルには (current-time-string) の書式は固定であっ
て、(substring) で切り出してよいということが書いてあります。
この (current-time-string) はじつは ctime(3)、つまり asctime(3) でした
(\n\0 は削ってありますが、これは Python などでも同じ)。

こんな細いことはどうでもよろしい、という主張もあります。僕もそんな気が
するのですが、我々にとってどうでもいいなら、センパイの作ったものをわざ
わざ変える必要もないのかもしれず、変えるなら、その理由が欲しくなるとい
うことはあります (もっと簡単にいえないものか :-)。

#Time クラスの to_a はマニュアルには載ってないのですが、これは正式な仕
#様には含まれていないのですか?

--Tadayoshi Funaba