[ruby-core:117071] [Ruby master Bug#20327] Time.new behaves differently when passing a zone as timezone object

Issue #20327 has been reported by davekaro (Dave Kroondyk). ---------------------------------------- Bug #20327: Time.new behaves differently when passing a zone as timezone object https://bugs.ruby-lang.org/issues/20327 * Author: davekaro (Dave Kroondyk) * Status: Open * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Time.new with a timezone object for the zone argument produces incorrect utc_offset when passing seconds as a Rational. ``` ruby require "tzinfo" # This correctly outputs 0 as the utc_offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").utc_offset # => 0 # Inspecting the time looks correct puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").inspect # => "2024-01-01 23:59:59.9 UTC" # Using a timezone object for the zone, results are different puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).utc_offset # => (9/10) # Inspecting the time object reveals the odd offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).inspect # => "2024-01-01 23:59:59.9 +000001" ``` -- https://bugs.ruby-lang.org/

Issue #20327 has been updated by naruse (Yui NARUSE). Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED to 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: DONE ruby_3_3 821719a505bbc628ddd80b90ae892666006eada1 merged revision(s) d3279a0c11ca45ca85027e7eb74dc4aac52c478b. ---------------------------------------- Bug #20327: Time.new behaves differently when passing a zone as timezone object https://bugs.ruby-lang.org/issues/20327#change-107405 * Author: davekaro (Dave Kroondyk) * Status: Closed * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23] * Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: DONE ---------------------------------------- Time.new with a timezone object for the zone argument produces incorrect utc_offset when passing seconds as a Rational. ``` ruby require "tzinfo" # This correctly outputs 0 as the utc_offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").utc_offset # => 0 # Inspecting the time looks correct puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").inspect # => "2024-01-01 23:59:59.9 UTC" # Using a timezone object for the zone, results are different puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).utc_offset # => (9/10) # Inspecting the time object reveals the odd offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).inspect # => "2024-01-01 23:59:59.9 +000001" ``` -- https://bugs.ruby-lang.org/

Issue #20327 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED, 3.3: DONE to 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE, 3.3: DONE ruby_3_2 e6bf38a6e7fbae0097fdf51e3c752820a2c58ae4 merged revision(s) d3279a0c11ca45ca85027e7eb74dc4aac52c478b. ---------------------------------------- Bug #20327: Time.new behaves differently when passing a zone as timezone object https://bugs.ruby-lang.org/issues/20327#change-107835 * Author: davekaro (Dave Kroondyk) * Status: Closed * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23] * Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE, 3.3: DONE ---------------------------------------- Time.new with a timezone object for the zone argument produces incorrect utc_offset when passing seconds as a Rational. ``` ruby require "tzinfo" # This correctly outputs 0 as the utc_offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").utc_offset # => 0 # Inspecting the time looks correct puts Time.new(2024, 1, 1, 23, 59, 59.9r, "UTC").inspect # => "2024-01-01 23:59:59.9 UTC" # Using a timezone object for the zone, results are different puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).utc_offset # => (9/10) # Inspecting the time object reveals the odd offset puts Time.new(2024, 1, 1, 23, 59, 59.9r, TZInfo::Timezone.get("Etc/UTC")).inspect # => "2024-01-01 23:59:59.9 +000001" ``` -- https://bugs.ruby-lang.org/
participants (3)
-
davekaro (Dave Kroondyk)
-
nagachika (Tomoyuki Chikanaga)
-
naruse (Yui NARUSE)