Ruby on Rails转换日期和时间值正确格式化utc时间

时间:2016-11-20 05:15:15

标签: ruby-on-rails ruby datetime utc

我的日期值如2016-11-19,时间值如2000-01-01 20:14:00 +0000

我想将其转换为正确的日期格式,它将显示如下所示的时间: 2016-11-20 04:14:00 +0000

有很多关于此的问题,但我很困惑。

3 个答案:

答案 0 :(得分:1)

您需要将日期值转换为时间值:

>> date = Date.new(2016, 11, 19)
>> time = date.to_time
=> 2016-11-19 00:00:00 -0700

请注意,time将设置为服务器所在时区的午夜。现在你有了一个时间对象,你可以为它添加秒数:

>> time_increment = Time.new(2000, 1, 1, 20, 14, 0)
>> seconds_increment = time_increment.seconds_since_midnight
=> 72840.0
>> new_time = time + seconds_increment
=> Sat, 19 Nov 2016 20:14:00 MST -07:00

答案 1 :(得分:1)

您可以使用Ruby strftime日期时间格式。

喜欢

date_value.strftime('%Y-%m-%d %H:%M:%S')  #=> 24-hour clock

date_value.strftime('%Y-%m-%d %I:%M:%S')  #=> 12-hour clock

Full documentation

答案 2 :(得分:0)

谢谢大家!但是,我可以自己解决问题!

time = bid_end_time.hour.to_s + ":" + bid_end_time.min.to_s + ":" + bid_end_time.sec.to_s
date_time = bid_end_date.to_s + " " + time
bid_end_date_time = Time.zone.parse(date_time).utc