From: WATANABE Hirofumi Date: 1998-02-13T11:08:51+09:00 Subject: [ruby-list:6402] parsedate (Re: ruby 1.1b7 released) わたなべです. 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