From: samuel@... Date: 2018-08-31T08:54:41+00:00 Subject: [ruby-core:88783] [Ruby trunk Bug#14880] Time#localtime doesn't always seem to respect TZ Issue #14880 has been updated by ioquatix (Samuel Williams). @nobu That doesn���t seem to align with what the documentation says: > Converts time to local time (using the local time zone in effect for this process) modifying the receiver. ---------------------------------------- Bug #14880: Time#localtime doesn't always seem to respect TZ https://bugs.ruby-lang.org/issues/14880#change-73828 * Author: ioquatix (Samuel Williams) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- In the first case, calling `#localtime` doesn't change the utc_offset. ``` $ TZ=UTC ruby -e 'ENV["TZ"]="Pacific/Auckland"; puts t=Time.new; ENV["TZ"]="UTC"; puts t.localtime' 2018-06-29 16:21:36 +1200 2018-06-29 16:21:36 +1200 $ TZ=UTC ruby -e 'ENV["TZ"]="Pacific/Auckland"; puts t=Time.new; ENV["TZ"]="UTC"; puts Time.new(t.year, t.month, t.day, t.hour, t.min, t.sec, t.utc_offset).localtime' 2018-06-29 16:23:08 +1200 2018-06-29 04:23:08 +0000 ``` In the second case, by creating new time, calling `#localtime` works as expected. It seems like once a time instance is "localtime", calling `#localtime` a 2nd time does not have any effect. -- https://bugs.ruby-lang.org/ Unsubscribe: