Returns a new DateTime where one or more of the
elements have been changed according to the options parameter.
The time options (:hour, :min, :sec)
reset cascadingly, so if only the hour is passed, then minute and sec is
set to 0. If the hour and minute is passed, then sec is set to 0. The
options parameter takes a hash with any of these keys:
:year, :month, :day,
:hour, :min, :sec,
:offset, :start.

DateTime formats are shared with Time. You can add your own to the Time::DATE_FORMATS
hash. Use the format name as the hash key and either a strftime string or
Proc instance that takes a time or datetime argument as the value.