Posted almost 11 years ago. Visible to the public.

Time#utc, Time#gmt and Time#localtime are destructive methods

Calling Time#utc, Time#gmt or Time#localtime will not create a converted copy. Instead these methods modify the receiving Time object:

>> time = => Thu Aug 25 09:52:28 +0200 2011 >> time.utc => Thu Aug 25 07:52:28 UTC 2011 >> time => Thu Aug 25 07:52:28 UTC 2011

This can have unexpected side effects when other code is holding pointers to the Time object you are modifying. To be safe, call these methods on a clone of the Time object. You can clone a Ruby object by using #dup Archive :

>> time = => Thu Aug 25 09:54:40 +0200 2011 >> time.dup.utc => Thu Aug 25 07:54:40 UTC 2011 >> time => Thu Aug 25 09:54:40 +0200 2011

Does your version of Ruby on Rails still receive security updates?
Rails LTS provides security patches for unsupported versions of Ruby on Rails (2.3, 3.2, 4.2 and 5.2).

Owner of this card:

Henning Koch
Last edit:
about 10 years ago
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Henning Koch to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more