2016-11-20 77 views
-1

我有一個日期值像2016年11月19日和喜歡2000-01-01 20點14分00秒+0000Ruby on Rails的轉換日期和時間值格式正確的UTC時間

時間值我想它轉換爲正確的日期格式,它會顯示UTC時間如下圖所示: 二○一六年十一月二十○日4時14分00秒+0000

有很多關於這個問題,但我很困惑。

+0

'04'小時從哪裏來? – spickermann

+0

04這裏沒關係!重要的是轉換爲本地的時間。儘管我得到了解決方案。看到我的答案。 –

+0

我很抱歉,也許這只是我,但我仍然不明白你的問題。在你的問題中的兩個日期時間已經是UTC,但它們在日期和小時中有所不同。這種差異的規則是什麼?既然這兩個日期時間的例子已經在UTC,你似乎想要改變時間+8小時。那是對的嗎?那是你要的嗎? (加上從日期時間到日期時間的組合)。 – spickermann

回答

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

您需要以編程方式執行此操作,因爲您需要將兩個字符串轉換爲對象。此外,該問題要求返回UTC時間。 –

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

+0

這不回答問題。 –