错误的日期红宝石Date.today和DateTime.now
题
我已经安装红宝石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到正常工作任何意见将非常感激!
解决方案
其他提示
返回的字符串似乎很破。我)今年是2126,II),还有的年份和月份之间的两个连字符,以及ii)当天是10618
什么平台,是你吗?时区是你什么(例子意味着你在格林尼治标准时间是)?
我在WinXP和Ruby 1.8.6-P111给出相同的结果在所有的三种情况。
编辑:我没有在Ruby源代码(Date
和DateTime
在lib/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
所以也许这就是搞乱的日期,你的情况。
林不知道,如果你是在本地运行,或在服务器上的东西,但我认为红宝石可能会考虑服务器日期,这可能是比你不同的时区,因此会有不同的显示。
不隶属于 StackOverflow