[ruby-core:117071] [Ruby master Bug#20327] Time.new behaves differently when passing a zone as timezone object
From:
"davekaro (Dave Kroondyk) via ruby-core" <ruby-core@...>
Date:
2024-03-07 01:56:49 UTC
List:
ruby-core #117071
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/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/