Ruby on Rails的转换日期和时间值格式正确的UTC时间
问题描述:
我有一个日期值像2016年11月19日和喜欢2000-01-01 20点14分00秒+0000Ruby on Rails的转换日期和时间值格式正确的UTC时间
时间值我想它转换为正确的日期格式,它会显示UTC时间如下图所示: 二○一六年十一月二十○日4时14分00秒+0000
有很多关于这个问题,但我很困惑。
答
谢谢大家!但是,我可以自己解决问题!
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
答
您需要将日期值转换为时间值:
>> 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
+0
您需要以编程方式执行此操作,因为您需要将两个字符串转换为对象。此外,该问题要求返回UTC时间。 –
答
您可以使用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
+0
这不回答问题。 –
'04'小时从哪里来? – spickermann
04这里没关系!重要的是转换为本地的时间。尽管我得到了解决方案。看到我的答案。 –
我很抱歉,也许这只是我,但我仍然不明白你的问题。在你的问题中的两个日期时间已经是UTC,但它们在日期和小时中有所不同。这种差异的规则是什么?既然这两个日期时间的例子已经在UTC,你似乎想要改变时间+8小时。那是对的吗?那是你要的吗? (加上从日期时间到日期时间的组合)。 – spickermann