📌
[Bug #21301] Time.new に UTC が渡されると無効な日付が設定できるバグ報告
[Bug #21301] Invalid Dates Accepted When Using "UTC" in Time.new
-
Time.newにUTCが指定されている場合に無効な日付を渡すことができるというバグ報告
# 4/31 は存在しない日付だが受け入れられてしまう
p Time.new(2025, 4, 31, 0, 0, 0, "UTC")
# => 2025-04-31 00:00:00 UTC
-
UTCではなくて+00:00を指定すると繰り上げられて05/01になるみたいですね
p Time.new(2025, 4, 31, 0, 0, 0, "+00:00")
# => 2025-05-01 00:00:00 +0000
- この問題自体はまだ対応されていないんですが [Feature #21307] A way to strictly validate time input も同じような話なのでこっちと合わせて修正されたりするのかな
-
#21307は時間の定義をより厳密に定義できるようにstrict:を指定できるようにする提案
-
Time.new(2025, 2, 29, 0, 0, 0, "+00:00", strict: true) #=> ArgumentError
Discussion