Rails - Added sub seconds to Time inspect

Ruby 2.7 added sub seconds to Time#inspect and separated it from Time#to_s.

Rails also added sub seconds to ActiveSupport::TimeWithZone#inspect.

This is particularly helpful when multiple time objects are created in a short interval. For e.g., when executing imports in parallel, or when we need to assert time differences in our test cases.

Before

Time.at(1587660977).in_time_zone.inspect
# => "Thu, 23 Apr 2020 16:56:17 UTC +00:00"

Time.at(1587660977, 456789123, :nsec).in_time_zone.inspect
# => "Thu, 23 Apr 2020 16:56:17 UTC +00:00"

After

Time.at(1587660977).in_time_zone.inspect
# => "Thu, 23 Apr 2020 16:56:17 UTC +00:00"

Time.at(1587660977, 456789123, :nsec).in_time_zone.inspect
# => "Thu, 23 Apr 2020 16:56:17.456789123 UTC +00:00"

Summary

As seen above the nsec part is not ignored anymore when we use inspect. This is useful for finer comparisons, assertions and usage with time across databases and systems.

Need help on your Ruby on Rails or React project?

Join Our Newsletter