ActiveSupport::TimeWithZone comparisons

Problem
You have two dates that you want to compare in your Rails application, which are both ActiveSupport::TimeWithZone.

Although they both look identical, when you are trying to compare them for equality (using ==), you get back false as a result.

 

Solution

These dates can have a difference in milliseconds that doesn’t normally get displayed. So first of all try to use to_f to see if they really have a difference.

If they do, then you would need to compare them by converting them to integers first as in :

date_a.to_i == date_b.to_i

and you should be getting back true