Project

General

Profile

Bug #8376

utc method changes original time object

Added by arjan0307 (Arjan Diepenbroek) over 7 years ago. Updated over 7 years ago.

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

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

Updated by naruse (Yui NARUSE) over 7 years ago

  • Status changed from Open to Rejected

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

Updated by mosselman (Achilleas Buisman) over 7 years 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.

Updated by matz (Yukihiro Matsumoto) over 7 years 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.

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

You can use Time#getutc or #getgm.

Also available in: Atom PDF