Ruby 1.9.2中的解析时间与Ruby 1.8.7不同?

时间:2011-08-27 05:58:03

标签: ruby time ruby-1.9.2 ruby-1.8 datetime-parsing

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

ruby​​ 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.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}

1 个答案:

答案 0 :(得分:2)

Ruby 1.9.2给你的是公元111年2月1日的日期(因为这就是这个日期)。

http://www.wolframalpha.com/input/?i=February+1st+111AD%3F。 1.8.7,我认为,很久以前无法处理日期。

Ruby 1.9.2正在做正确的事。

如果您的输入是以这种方式编写的,但它确实应该代表2011年,那么:

  1. 输入格式不正确,因为它表示年份111AD
  2. 您必须预先处理输入字符串,使其成为正确的解析格式