Can someone explain how d1 is greater than d2? They are the same damn dates (or atleast that is how they look to me).
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 >
With regards to my specific application needs ... I have an iOS app that makes a request to my Rails application passing a JSON object that, amongst other items, includes NSDates in the format of "2011-09-22T02:24:28-07:00." I'm attempting to compare that datetime with the "updated_at" which is of type ActiveSupport::TimeWithZone.
Thanks - wg
You will find that the updated_at
attribute in your Event model has a higher precision than seconds.
Try outputting the milliseconds part of your respective time objects:
puts d1.usec
puts d2.usec
Chances are the former will be > 0 since it was set automatically when the object was persisted, while the latter will equal 0 since you did not specify any milliseconds in the string from which you parsed it.
精彩评论