change (ActiveSupport::CoreExtensions::Time::Calculations)

    # File lib/active_support/core_ext/time/calculations.rb, line 85
            def change(options)
              ::Time.send(
                self.utc? ? :utc_time : :local_time,
                options[:year]  || self.year,
                options[:month] || self.month,
                options[:day]   || self.day,
                options[:hour]  || self.hour,
                options[:min]   || (options[:hour] ? 0 : self.min),
                options[:sec]   || ((options[:hour] || options[:min]) ? 0 : self.sec),
                options[:usec]  || ((options[:hour] || options[:min] || options[:sec]) ? 0 : self.usec)
              )
            end