Bugs item #2019, was opened at 2005-06-11 22:06
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=2019&group_id=426

Category: Core
Group: None
Status: Closed
Resolution: Out of Date
Priority: 3
Submitted By: Chris Morris (hitsvilleusa)
Assigned to: Nobody (None)
Summary: Time.parse fails at different times than DateTime.parse

Initial Comment:
I am pretty new to Ruby, and I could have inappropriate expectations, but I would expect that Time.parse and DateTime.parse would parse the same String in a similar fashion...most importantly, fail on the same dates.  Here is my example:


require 'time'
require 'date'

puts Time.parse("4/12/2005")
puts Time.parse("4/31/2005")
puts DateTime.parse("4/12/2005")
puts DateTime.parse("4/31/2005")


So, there are not 31 days in April, and Time parses it fine but returns May 1.  DateTime fails on the parsing of the date.  I would have expected Time to also fail, but alas it does not.  But, to make this more confusing, Time.parse will fail on the date "4/32/2005".  So somehow there are some dates which just don't make sense at all, and some dates which "could" make sense, but may not for a certain month.

Anyhow, this is rather confusing, and "non-intuitive" in my opinion.  This may be deemed as an invalid bug, but I would call the current behavior "expected".  Thanks for the consideration.

----------------------------------------------------------------------

Comment By: Jan Faber (fjan)
Date: 2007-04-13 11:45

Message:
The above inconsistency is still there in 1.8.6, and I've found that the treatment of 24:00 is treated as a valid time by Date but not by Time.

puts DateTime::valid_time?(24,0,0) # => 1 (valid)
puts Time.utc(2007,1,1,24,0) # => Argument error: argument out of range

This one is potentially more serious because many programs could rely on valid_time? for verification.



----------------------------------------------------------------------

Comment By: Ryan Davis (zenspider)
Date: 2006-11-02 08:19

Message:
I'm closing this bug due to its age / staleness. I simply can't triage them all and I have 
to cut corners somewhere. If you believe this bug still exists in the latest version of 
ruby 1.8.x, please reopen it and, if you can, attach a minimally reproducible test case 
to help us repro it in 1.8.x (where x >= 5).

Thank you for your support. Things will get better.

Ryan Davis.

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=2019&group_id=426