Ruby - Изменение части даты экземпляра Времени

У меня есть экземпляр Времени 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

Как достигнуть этого?

10
задан Vijay Dev 21 February 2010 в 18:11
поделиться

2 ответа

Объекты 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)
10
ответ дан 3 December 2019 в 15:21
поделиться

Попробуйте это:

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.

3
ответ дан 3 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: