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

发布于 2024-12-01 13:40:41 字数 599 浏览 3 评论 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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆悲凉 2024-12-08 13:40:41

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. 您必须预处理输入字符串以使其正确解析格式

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:

  1. The input is incorrectly formatted, as it indicates the year 111AD
  2. You'll have to pre-process the input string to a make it the correct format for parsing
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文