🦁

[Bug #21141] Time#utc? が timezone オブジェクトの場合だと false が返ってくるバグ報告

2025/02/21に公開

[Bug #21141] Time#utc? does not work with a timezone object

utc = Time.now(in: "UTC")
pp utc.utc? # => true

utc = Time.now(in: "+09:00")
pp utc.utc? # => false
  • このチケットでは Time#utc?timezone オブジェクトの場合だと false が返ってくるバグ報告になります
    • timezonetzinfo って標準ライブラリだっけ?と思ったら思いっきり 3rd party ライブラリでした
    • timezone オブジェクトとは?は class Time - Documentation for Ruby 3.4 のあたりが参考になります
require "timezone"
require 'tzinfo'

t_timezone = Time.now(in: Timezone["UTC"])
t_tzinfo = Time.now(in: TZInfo::Timezone.get("UTC"))
p t_timezone.utc? #=> false
p t_tzinfo.utc?   #=> false
  • 他にも環境変数 TZ=UTC の場合でも false が返ってくるみたいですね
ENV["TZ"] = "UTC"
p Time.now.utc? #=> false
  • これはどこまで厳密にチェックするとよいのですかねー
GitHubで編集を提案

Discussion