class Date

def to_time(form = :local)

date.to_time(:utc) # => 2007-11-10 00:00:00 UTC

date.to_time(:local) # => 2007-11-10 00:00:00 0800
date.to_time # => 2007-11-10 00:00:00 0800

date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007

The timezone can be either :local or :utc (default :local).
Converts a Date instance to a Time, where the time is set to the beginning of the day.
def to_time(form = :local)
  raise ArgumentError, "Expected :local or :utc, got #{form.inspect}." unless [:local, :utc].include?(form)
  ::Time.send(form, year, month, day)
end