わたなべです.
parsedate はこのままじゃちょっとまずいです.
たとえば ruby-list で設定されてる Date は
Tue, 10 Feb 98 17:57:34 +0900
という形式ですが, 最初の正規表現が
/(\d\d\d\d)-?(?:(\d\d)-?(\d\d)?)? *(?:(\d\d):(\d\d)(?::(\d\d))?)?/
なので (\d\d\d\d) が 0900 にマッチしていまいます.
この正規表現はちょっとゆるすぎますね.
でこの部分を削除しても date の出力のような
Fri Feb 13 10:23:17 JST 1998
という形式もだめです. これは (?:\s+([a-z]{1,4}) が一個余計の
ような気がする. patch を添付します.
#あまりまじめに見てないけど (?:) をこんなに多用しないといけないのかな?
そういえば仕様も変わりましたね. [98, 2, 13] という形式から
[1998, 2, 13, 5, 10, 29, 33, "JST"] に.
sample/from.rb も y%100 にしたほうがいいか.
--
わたなべひろふみ
--- parsedate.rb~ Tue Feb 3 18:28:15 1998
+++ parsedate.rb Fri Feb 13 10:59:35 1998
@@ -27,3 +27,3 @@
end
- if date.sub!(/(\d+):(\d+)(?::(\d+))?\s*(am|pm)?\s*(?:\s+([a-z]{1,4}(?:\s+[a-z]{1,4})|[-+]\d{4}))?/i, ' ')
+ if date.sub!(/(\d+):(\d+)(?::(\d+))?\s*(am|pm)?\s*(?:\s+([a-z]{1,4}|[-+]\d{4}))?/i, ' ')
hour = $1.to_i