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