From: "ufuk (Ufuk Kayserilioglu) via ruby-core" Date: 2025-03-04T21:04:55+00:00 Subject: [ruby-core:121237] [Ruby master Bug#21144] Win32: Use Windows time zone ID as the time zone name if TZ is not set Issue #21144 has been updated by ufuk (Ufuk Kayserilioglu). Backport changed from 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED to 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE ruby_3_4 commit:d40c6cf7b606edb815adf7a8e9abe98f38a8f747. ---------------------------------------- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set https://bugs.ruby-lang.org/issues/21144#change-112185 * Author: nobu (Nobuyoshi Nakada) * Status: Closed * Assignee: windows * Backport: 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE ---------------------------------------- ### Problem On Windows, the `Time#zone` uses `_tzname` provided by the runtime library. This is obtained by using `GetTimeZoneInformation`, if the `TZ` environment variable is not set or empty. The problem is that the `StandardName` and `DaylightName` in that information are for UI, and localized. This means that these names may vary across different international editions and language packs, even for the same time zone. ### Solution Use the Windows time zone ID by using `GetDynamicTimeZoneInformation`, which is available since Windows Vista and Windows Server 2008. Since the `TimeZoneKeyName` is the registry key of time zones, the above problem does not occur. This is also mitigate [Bug #20929]. Even it is possible to define non-ascii key name time zone, there is no such name in the standard installations. ### Compatibilities etc - This also changes the result of `Time#inspect`, may not be good for ones who prefer the display names for UI. - There is no way to restore `zone` from `Marshal` data, this does *not* improve. - The PR [GH-12765] changes the signature of `ruby_reset_timezone()` and marks internal use only, but this function is declared in `internal/time.h` and probably no problem. [GH-12765]: https://github.com/ruby/ruby/pull/12765 -- 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/lists/ruby-core.ml.ruby-lang.org/