Ruby 测试ActiveSupport::TimeWithZone对象是否相等
有人能解释为什么d1大于d2吗?他们是同一个该死的日期(至少在我看来是这样) 关于我的具体应用需求。。。我有一个iOS应用程序,它向我的Rails应用程序发出请求,传递一个JSON对象,其中包括格式为“2011-09-22T02:24:28-07:00”的NSDates。我试图将该日期时间与类型为ActiveSupport::TimeWithZone的“updated_at”进行比较Ruby 测试ActiveSupport::TimeWithZone对象是否相等,ruby,ruby-on-rails-3,datetime,compare,activesupport,Ruby,Ruby On Rails 3,Datetime,Compare,Activesupport,有人能解释为什么d1大于d2吗?他们是同一个该死的日期(至少在我看来是这样) 关于我的具体应用需求。。。我有一个iOS应用程序,它向我的Rails应用程序发出请求,传递一个JSON对象,其中包括格式为“2011-09-22T02:24:28-07:00”的NSDates。我试图将该日期时间与类型为ActiveSupport::TimeWithZone的“updated_at”进行比较 谢谢-wg您会发现事件模型中的updated_at属性的精度高于秒 尝试输出各自时间对象的毫秒部分: puts
谢谢-wg您会发现事件模型中的
updated_at
属性的精度高于秒
尝试输出各自时间对象的毫秒部分:
puts d1.usec
puts d2.usec
前者很可能会>0,因为它是在对象持久化时自动设置的,而后者将等于0,因为您没有在解析它的字符串中指定任何毫秒。是的,就是这样。比较这些日期的最佳方法是什么,这样就不会被纳入比较中?试试
d1.to\u i==d2.to\u i
。
puts d1.usec
puts d2.usec