这是Ruby时间类在进行相对日期运算时的一个错误吗



有人能告诉我这是否是ruby时间类中的错误吗?

ruby-1.8.7-p334 :021 > now = Time.now
 => Mon Aug 29 03:32:25 -0700 2011 
ruby-1.8.7-p334 :022 > raise "This should not fail" if (now + 1.day != now + 1.day.to_i)
RuntimeError: This should not fail
    from (irb):22
ruby-1.8.7-p334 :023 > 

正如你所看到的,我遇到了一个运行时错误,我认为我不应该这样做。我最近升级了active_support gem,我认为它提供了这一功能。

谢谢。

**更新**

而且,现在它起作用了,除了我上床睡觉、醒来和重新运行之外,没有任何变化。这很奇怪;我在上面提供的片段是直接从我的终端窗口剪切粘贴的。。。。我在运行3.0.10的activerecord/support/model/etc

感谢大家对此事的思考!

虽然time.to_s不包括它,但Time对象包含毫秒——不仅如此,它还包含分数秒(分辨率高得多((请参见:Time#subsec(。

Time.now == Time.now将已经为false,因为对now的每次调用都需要几个CPU节拍才能完成。还可以看看时间#eql?。

如果time和other_time都是具有相同秒数和小数秒数的time对象,则返回true。

这肯定不是Time类中的错误,因为区别似乎在于Fixnum类的day方法。此外,这不是原始Fixnum类的方法;它应该在你required之前的某个文件中定义。

相关内容

最新更新