Actions
Bug #10767
closedTime.local doesn't raise an exception during the dead hour on DST
Description
At the begin of DST ruby is accepting the 0 hour which in fact doesn't exists:
Time.local(2014, 10, 19, 0, 30)
#=> 2014-10-19 01:30:00 -0200
Time.local(2014, 10, 19, 1, 30)
#=> 2014-10-19 01:30:00 -0200
Time.local(2014, 10, 19, 2, 30)
#=> 2014-10-19 02:30:00 -0200
In fact it is returning the next hour for some reason, causing a really strange behaviour:
Time.local(2014, 10, 19, 0, 30) == Time.local(2014, 10, 19, 1, 30)
#=> true
I think it makes more sense to raise an exception as happens when you specify a invalid month, day, hour, minute or second:
Time.local(2014, 10, 19, 1, 60) # 60 minutes doesn't exists
ArgumentError: invalid date
Time.local(2014, 10, 19, 25, 30) # 25 hours doesn't exists
ArgumentError: invalid date
Makes sense? I would be happy to provide a patch.
Actions
Like0
Like0Like0Like0