0

これをRuby 1.8.7で解析する

time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br />
Time.parse(time_str)<br />
output 
Tue Feb 01 00:00:00 +0530 2011

ルビー1.9.2

time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br />
Time.parse(time_str)<br />
output <br />
0111-02-01 00:00:00 +0553 

正確に何が問題なのか教えてください。

これは、以下に示すように、Ruby 1.9.2 での Time の解析方法と関係がありますか?

Time.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
4

1 に答える 1

2

Ruby 1.9.2は、西暦111年2月1日の日付を提供します(これがこの日付であるため)。

http://www.wolframalpha.com/input/?i=February+1st+111AD%3F。1.8.7は、ずっと前に日付を処理できなかったと思います。

Ruby1.9.2は正しいことをしています。

入力がこのように書かれているが、実際には2011年を表すことになっている場合は、次のようになります。

  1. 111AD年を示しているため、入力の形式が正しくありません。
  2. 入力文字列を前処理して、解析用の正しい形式にする必要があります
于 2011-08-27T10:47:02.603 に答える