Ruby 1.9.2 中的解析时间与 Ruby 1.8.7 不一样?
在 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 的解析方式如下所示?
Time.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
Parsing this in 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
Could you please tell me what exactly the problem is?
Is this something to do with the way Time parsed in ruby 1.9.2 as shown below?
Time.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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 年,那么:
Ruby 1.9.2 is giving you the date at 1st February 111 AD (because that's what this date is).
http://www.wolframalpha.com/input/?i=February+1st+111AD%3F. 1.8.7, I assume, was not able to handle Dates that long ago.
Ruby 1.9.2 is doing the correct thing.
If your input is written this way, but it really is supposed to represent the year 2011, then: