2016-06-28 128 views
2

我從json響應中提取了一個字符串"2015-11-01T10:00:00.00+08:00"如何將它轉換爲Time或DateTime?將字符串轉換爲DateTime Ruby

我試過Time.new("2015-11-01T10:00:00.00+08:00")其返回2015-01-01 00:00:00 +0530,顯然日期在這裏和這個時間也改變了。

回答

7
require 'date' 

▶ Date.parse "2015-11-01T10:00:00.00+08:00" 
#⇒ #<Date: 2015-11-01 ((2457328j,0s,0n),+0s,2299161j)> 

▶ DateTime.parse "2015-11-01T10:00:00.00+08:00" 
#⇒ #<DateTime: 2015-11-01T10:00:00+08:00 ((2457328j,7200s,0n),+28800s,2299161j)> 
+0

感謝兄弟,Time.parse爲我工作。 – Imran

+0

你不需要先使用'require'date''? –

+0

@LukasBaliak最有可能的,更新,thx。 – mudasobwa

0

Time#parse

require 'time' 
Time.parse("2015-11-01T10:00:00.00+08:00") 
0

如果它在軌道,只是做

"2015-11-01T10:00:00.00+08:00".to_time 

曾在鐵軌控制檯。

如果只是普通的紅寶石,去@ mudasobwa的解決方案

3

使用Rails,根據您的需求,我們建議使用:

Time.zone.parse("2015-11-01T10:00:00.00+08:00") 
#=> Sun, 01 Nov 2015 02:00:00 UTC +00:00 

VS

Time.parse("2015-11-01T10:00:00.00+08:00") 
#=> 2015-11-01 10:00:00 +0800 

Time.zone.parse將返回在您的時區中表示的日期時間。