如何指定给定日期对象的时间?

时间:2013-12-29 02:31:45

标签: ruby-on-rails ruby datetime

我正在尝试创建一个既有日期字段又有时间字段的对象。我想根据日期字段中的日期生成时间字段。例如:

SampleObject.new(
  date = Date.today #Sat, 28 Dec 2013
  time = Date.today.at(5:00pm EST) #Sat, 28 Dec 2013 2013-12-28 17:00:00 -0500 Not valid ruby syntax)
)

如何使time =行按预期工作?

2 个答案:

答案 0 :(得分:0)

我将此问题解释为“将给定日期的某一天的时间设置为给定时间的方法”

你能做到的一种方法如下:

def set_date_and_time(date = Date.today, time = Time.now)
  this_day  = [date.year, date.month, date.day]
  this_time = [time.hour, time.min, time.sec]

  Time.new(*this_day, *this_time) 
end

希望这有帮助。

答案 1 :(得分:0)

我会做类似的事情:

DateTime.parse Date.today.to_s + ' 5pm'
#<DateTime: 2013-12-28T17:00:00+00:00 ((2456655j,61200s,0n),+0s,2299161j)>