🌟
[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
Discussion