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

Ruby on Rails convert date and time value properly formatted utc time

我有一个像 2016-11-19 这样的日期值和一个像 2000-01-01 这样的时间值 20:14:00 +0000

我想将其转换为正确的日期格式,这样可以像下面这样显示 utc 时间: 2016-11-20 04:14:00 +0000

关于这个有很多问题,但我很困惑。

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

>> 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

您可以使用 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

谢谢大家!但是,我可以自己解决问题![​​=11=]

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