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 无法处理很久以前的日期。

Ruby 1.9.2 正在做正确的事情。

如果您的输入是这样写的,但它确实应该代表 2011 年,那么:

  1. 输入格式不正确,因为它表示公元 111 年
  2. 您必须预处理输入字符串以使其成为正确的解析格式
于 2011-08-27T10:47:02.603 回答