Eric and I have been hacking around and we can't stand the lack of 
interoperability between Time and ParseDate. We think that one should 
be able to feed the other. We've hacked up the following code (and 
tests!) and would like to see this added if possible. The only thing I 
don't like about this code is that we drop off the timezone argument 
from parsedate. I'm not sure what to do about that, as I don't know how 
to adjust the generated time by the right amount of offset. If someone 
could come up with that, it would be a huge benefit.

Thanks.

class Time
   def Time.str2local(str)
     self.local(*ParseDate.better(str))
   end
   def Time.str2gm(str)
     self.gm(*ParseDate.better(str))
   end
end

module ParseDate
   def ParseDate.better(str)
     result = ParseDate.parsedate(str).map { |x| x.nil? ? 0 : x}
     result[0..-2]
   end
end

require 'parsedate'
require 'test/unit'

class TestParseDateBetter < Test::Unit::TestCase
   def test_bottom_up
     result = ParseDate.better("1975-11-10 T13:45")
     assert_equal([1975, 11, 10, 13, 45, 0, 0],
		 result,
		 "Array must be the correct args for Time.local")
   end
   def test_top_down
     result = Time.str2local("1975-11-10 T13:45")
     assert_equal(Time.local(1975, 11, 10, 13, 45, 0, 0),
		 result,
		 "Must return the correct time straight up")
   end
end