まつもと ゆきひろです

In message "[ruby-list:16209] year of parsedate"
    on 99/08/19, kikutani / sprintmail.com <kikutani / sprintmail.com> writes:

|parsedateって最近仕様が変わったのかしら。

今改めてみると昔から date(1) なフォーマットはダメみたいです
ね。strftime("%c")は大丈夫なのにな。どうもタイムゾーンが邪魔
してるみたい。

こんな感じかな?

--- /tmp/parsedate.rb	Thu Aug 19 03:59:08 1999
+++ lib/parsedate.rb	Thu Aug 19 03:59:37 1999
@@ -64,2 +64,11 @@
       year = $3.to_i
+    elsif date.sub!(/(\d+)-(#{MONTHPAT})-(\d+)/i, ' ')
+      mday = $1.to_i
+      mon = MONTHS[$2.downcase]
+      year = $3.to_i
+    end
+    if date.sub!(/\d{4}/i, ' ')
+      year = $&.to_i
+    elsif date.sub!(/\d\d/i, ' ')
+      year = $&.to_i
     end
@@ -73,6 +82,2 @@
       end
-    elsif date.sub!(/(\d+)-(#{MONTHPAT})-(\d+)/i, ' ')
-      mday = $1.to_i
-      mon = MONTHS[$2.downcase]
-      year = $3.to_i
     end