我已经安装红宝石1.8.6-P383与RVM。系统红宝石是1.9.1_p378-1

我使用的红宝石1.8时正从Date.today和DateTime.now错误的日期..而Time.now是正确的:

irb(main):002:0> DateTime.now.to_s
=> "2126--1-10618T11:23:43+00:00"
irb(main):004:0> Date.today.to_s
=> "2126--1-10618"
irb(main):005:0> Time.now
=> Thu Jan 28 11:55:27 +0000 2010

一切都很好如果切换到红宝石1.9:

irb(main):003:0> DateTime.now.to_s
=> "2010-01-28T11:58:51+00:00"
irb(main):004:0> Date.today.to_s
=> "2010-01-28"
irb(main):005:0> Time.now
=> 2010-01-28 11:59:05 +0000

如何在红宝石1.8得到的DateTime到正常工作任何意见将非常感激!

有帮助吗?

解决方案

我偶然发现类似的问题,并得到3个不同的解决方案,其中我试图2和都工作。了解更多关于它从这里:

http://www.ruby-forum.com/topic/210647

亚尔莫

其他提示

返回的字符串似乎很破。我)今年是2126,II),还有的年份和月份之间的两个连字符,以及ii)当天是10618

什么平台,是你吗?时区是你什么(例子意味着你在格林尼治标准时间是)?

我在WinXP和Ruby 1.8.6-P111给出相同的结果在所有的三种情况。

编辑:我没有在Ruby源代码(DateDateTimelib/date.rb定义)一些挖掘。

原来,Date.today内部调用Time.now.__send__(:to_date)...,所以也许你应该尝试调用Time.now.__send__(:to_date).to_s irb,为了缩小问题的输出比较Time.now.to_s

Date.today还呼吁创建.new_start(...)实例Date所以也许这就是搞乱的日期,你的情况。

林不知道,如果你是在本地运行,或在服务器上的东西,但我认为红宝石可能会考虑服务器日期,这可能是比你不同的时区,因此会有不同的显示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top