Bug #8376

utc method changes original time object

Added by Arjan Diepenbroek 11 months ago. Updated 11 months ago.

[ruby-core:54848]
Status:Rejected
Priority:Normal
Assignee:-
Category:-
Target version:-
ruby -v:1.8.7, 1.9.3, 2.0.0 Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN

Description

The utc method changes the original time object when called.

For example when on a system with a CET timezone.

t = Time.new(2013)
t.zone # CET
t.utc
t.zone # UTC

History

#1 Updated by Yui NARUSE 11 months ago

  • Status changed from Open to Rejected

Time#utc is destructive method.
Use dup if you want a copy.

#2 Updated by Achilleas Buisman 11 months ago

naruse (Yui NARUSE) wrote:

Time#utc is destructive method.
Use dup if you want a copy.

That seems the point of this issue. The behaviour is inconsistent. t.utc! should be the way to destroy t in the example. This should be changed... ruby isn't PHP.

#3 Updated by Yukihiro Matsumoto 11 months ago

I admit this is a bad design, but changing it introduces incompatibility.
We don't consider it as a bug (thus we rejected).
Submit feature request instead, if you really want to change.
Maybe fixed in the future, if we can provide proper migration path.

Matz.

#4 Updated by Nobuyoshi Nakada 11 months ago

You can use Time#getutc or #getgm.

Also available in: Atom PDF