Actions
Bug #20674
closedTime zone conversion issue Time.at
Description
Time.at
converts the epoch time to the local time zone But there seems a weird case with Central Time (US & Canada)
where it convert it one hour earlier for example
take this timestamp 1728018000 when converted it to Central Time (US & Canada) with Time.at
=> Time.zone = "Central Time (US & Canada)"
=> "Central Time (US & Canada)"
=> Time.at(1728018000)
=> 2024-10-04 01:00:00 -0400
While using ActiveSupport::TimeZone
ActiveSupport::TimeZone['Central Time (US & Canada)'].at(1728018000)
=> Fri, 04 Oct 2024 00:00:00.000000000 CDT -05:00
so Time.at
convert it to -4 while ActiveSupport::TimeZone
convert it to -5
Updated by moustafasallam (Moustafa Sallam Mahmoud) 10 months ago
- ruby -v set to ruby 3.2.2
Updated by nobu (Nobuyoshi Nakada) 10 months ago
ยท Edited
- Description updated (diff)
- Status changed from Open to Rejected
Time.zone=
method is not defined in Ruby itself, probably defined by ActiveSupport, I don't know from where it comes.
So Time.at
is not affected by it at all, and -4 would have come from your "TZ" environment variable or system configuration.
Updated by nobu (Nobuyoshi Nakada) 10 months ago
- Status changed from Rejected to Third Party's Issue
require 'active_support'
require 'active_support/core_ext'
Time.zone = "Central Time (US & Canada)"
p Time.at(1728018000, in: Time.zone) #=> 2024-10-04 00:00:00 -0500
Updated by nobu (Nobuyoshi Nakada) 10 months ago
- Status changed from Third Party's Issue to Rejected
Actions
Like0
Like0Like0Like0Like0