2016-06-28 153 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将返回在您的时区中表示的日期时间。