我有一個日期值像2016年11月19日和喜歡2000-01-01 20點14分00秒+0000Ruby on Rails的轉換日期和時間值格式正確的UTC時間
時間值我想它轉換爲正確的日期格式,它會顯示UTC時間如下圖所示: 二○一六年十一月二十○日4時14分00秒+0000
有很多關於這個問題,但我很困惑。
我有一個日期值像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
您需要以編程方式執行此操作,因爲您需要將兩個字符串轉換爲對象。此外,該問題要求返回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
這不回答問題。 –
'04'小時從哪裏來? – spickermann
04這裏沒關係!重要的是轉換爲本地的時間。儘管我得到了解決方案。看到我的答案。 –
我很抱歉,也許這只是我,但我仍然不明白你的問題。在你的問題中的兩個日期時間已經是UTC,但它們在日期和小時中有所不同。這種差異的規則是什麼?既然這兩個日期時間的例子已經在UTC,你似乎想要改變時間+8小時。那是對的嗎?那是你要的嗎? (加上從日期時間到日期時間的組合)。 – spickermann