10

有人能解释一下 d1 是如何大于 d2 的吗?它们是同一个该死的日期(或者至少在我看来它们是这样的)。

Loading development environment (Rails 3.0.8)
ruby-1.9.2-p180 :001 > d1 = Event.first.updated_at
 => Thu, 22 Sep 2011 02:24:28 PDT -07:00 
ruby-1.9.2-p180 :002 > d2 = Time.zone.parse("2011-09-22T02:24:28-07:00")
 => Thu, 22 Sep 2011 02:24:28 PDT -07:00 
ruby-1.9.2-p180 :003 > d1.class
 => ActiveSupport::TimeWithZone 
ruby-1.9.2-p180 :004 > d2.class
 => ActiveSupport::TimeWithZone 
ruby-1.9.2-p180 :005 > d1 > d2
 => true 
ruby-1.9.2-p180 :006 > 

关于我的特定应用程序需求......我有一个 iOS 应用程序向我的 Rails 应用程序发出请求,传递一个 JSON 对象,其中包括格式为“2011-09-22T02:24:28-”的 NSDates 07:00。” 我试图将该日期时间与 ActiveSupport::TimeWithZone 类型的“updated_at”进行比较。

谢谢-wg

4

1 回答 1

21

您会发现updated_atEvent 模型中的属性具有比秒更高的精度。

尝试输出各自时间对象的毫秒部分:

puts d1.usec
puts d2.usec

前者可能 > 0,因为它是在持久化对象时自动设置的,而后者将等于 0,因为您没有在解析它的字符串中指定任何毫秒。

于 2011-09-22T10:13:31.790 回答