有人能告诉我这是否是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
类的方法;它应该在你require
d之前的某个文件中定义。