If you look at the classes returned, Date.new.to_time returns a DateTime, while Date.today.to_time returns a Time
Date.new.to_time.class --> DateTime
Date.today.to_time.class --> Time
Not sure why that is the case, but obviously DateTime doesn't have a to_i method.
Simon
to_time() is a CoreExtensions method which uses Time::utc_time() ->
Time::time_with_datetime_fallback() from CoreExtensions to generate
the Time object. From the documentation:
Returns a new Time if requested year can be accommodated by Ruby‘s
Time class (i.e., if year is within either 1970..2038 or 1902..2038,
depending on system architecture); otherwise returns a DateTime
Because the year is out of range, you'll get a DateTime back, which
you can't call to_i on.
This is actually quite silly, when you think about it.
-Matt