🌟

[Feature #21307] Time.new で時間を厳密に定義するチケット

に公開

[Feature #21307] A way to strictly validate time input

  • Time.new で時間を厳密に定義するチケット
  • Time.new では以下のように時刻のオブジェクトを作成することができる
time = Time.new(2025, 5, 29, 19, 27, 39)
pp time
# => 2025-05-29 19:27:39 +0900
  • このときに例えば 24 に割り当てる
time = Time.new(2025, 5, 29, 24, 0, 0)
pp time
# => 2025-05-30 00:00:00 +0900
  • このように日が繰り上がるような挙動になる
  • これは 24 よりも大きいとエラーになる
# error: hour out of range (ArgumentError)
Time.new(2025, 5, 29, 25, 0, 0)
  • これをより厳格に判断するようにする提案
  • 現状だと struct: true を追加する方向みたいですね
Time.new(2025, 2, 29, 0, 0, 0, "+00:00", strict: true) #=> ArgumentError
GitHubで編集を提案

Discussion