Ruby 2.7 - Time#inspect separated from Time#to_s

1 minute read

Ruby 2.7 separated Time#to_s method from Time#inspect .

They were separated due to some troubles in the comparison of Time objects whose fractional parts were different.

For example, there are multiple time objects which are generated in a single HTTP request. They would be definitely different by some seconds. So assert_equal should fail.

But when we use assert_equal with inspect , it will return true as the fractional parts are ignored.

Before Ruby 2.7.0

Time . now . utc . to_s => "2019-12-10 13:25:22 UTC" Time . now . utc . inspect => "2019-12-10 13:25:22 UTC" ( Time . now . utc + 0.1 ). to_s => "2019-12-10 13:25:22 UTC" ( Time . now . utc + 0.1 ). inspect => "2019-12-10 13:25:22 UTC"

In Ruby 2.7.0

Time . now . utc . to_s => "2019-12-10 13:25:22 UTC" Time . now . utc . inspect => "2019-12-10 13:25:22.751418 UTC" ( Time . now . utc + 0.1 ). to_s => "2019-12-10 13:25:22 UTC" ( Time . now . utc + 0.1 ). inspect => "2019-12-10 13:25:22 17271867520919273597/22517998136852480000 UTC"