我有三个字符串,从数据库中提取:
"2015-03-18" (事件发生的日期)"22:00" (事件发生的时间)"-05:00" (事件发生位置的UTC偏移).我想组合这三个字符串来生成Ruby Time对象.我正在做:
utc_offset = "-05:00"
airtime = "22:00"
airday = "2015-03-18"
year,month,day,hour,minutes = airday.split("-").map(&:to_i) + airtime.split(":").map(&:to_i)
Time.new(year,month,day,hour,minutes,0,utc_offset)
Run Code Online (Sandbox Code Playgroud)
这有效; 我只是想知道它是否是正确/标准/惯用/最清晰的方式.
通过使用Time.parse
当需要'time'时,Time会通过其他解析和转换Times的方法进行扩展.
require 'time'
utc_offset = "-05:00"
airtime = "22:00"
airday = "2015-03-18"
time = Time.parse("#{airday} #{airtime} #{utc_offset}")
Run Code Online (Sandbox Code Playgroud)