我正在使用以下方式创建一个指定了hour
和minute
的时间实例,其余的就是今天。
Time.new(Date.today.year, Date.today.month, Date.today.day, hour, minute)
或
d = Date.today
Time.new(d.year, d.month, d.day, hour, minute)
所以我必须写三次类似的表达Date#year
,Date#month
和Date#day
。有没有更简洁的方式来写这个?
答案 0 :(得分:2)
您可以使用Time.parse
:
require 'time'
Time.parse("16:30")
#=> 2015-02-23 16:30:00 -0500
的注释
您必须要'时间'才能使用此方法。
答案 1 :(得分:1)
基于spickermans answer,您可以延长时间以获得更简单的功能:
require 'time'
class Time
def self.today(hour=0,minute=0)
d = Date.today
self.new(d.year, d.month, d.day, hour, minute)
end
end
p Time.today #-> 2015-02-23 00:00:00 +0100
p Time.today(12) #-> 2015-02-23 12:00:00 +0100
p Time.today(12,30) #-> 2015-02-23 12:30:00 +0100
答案 2 :(得分:0)
您也可以这样写:
hour = 15
minute = 21
require 'date'
Date.today.to_time + 60*(60 * hour + minute)
#=> 2015-02-22 15:21:00 -0800