У меня есть экземпляр Времени curr_time со значением Time.now и другой Строки target_date со значением, скажем, "17 апреля 2010". Как я добираюсь, часть даты в переменной curr_time изменяются на значение target_date?
>> curr_time => Sun Feb 21 23:37:27 +0530 2010 >> target_date => "Apr 17, 2010"
Я хочу, чтобы curr_time изменился как это:
>> curr_time => Sat Apr 17 23:37:27 +0530 2010
Как достигнуть этого?
Объекты Time неизменяемы, поэтому вы должны создать новый объект Time с нужными значениями. Like this:
require 'time'
target = Time.parse(target_date)
curr_time = Time.mktime(target.year, target.month, target.day, curr_time.hour, curr_time.min)
Попробуйте это:
Time.parse(target_date) + curr_time.sec + curr_time.min * 60 + curr_time.hour * 60 * 60
=> Sat Apr 17 19:30:34 +0200 2010
Вы получите DateTime с датой из target_date и временем из curr_time.