您可以像这样解析日期
1.9.3p194> date = '2012-1-1'
=> "2012-1-1"
1.9.3p194> Time.parse(date)
=> 2012-01-01 00:00:00 +1300
那是使用我当地的时区(惠灵顿,+13)。你也可以用同样的方式解析你的时间字符串
1.9.3p194> time = '2012-08-14 14:48:47 +1000'
=> "2012-08-14 14:48:47 +1000"
1.9.3p194> Time.parse(time)
=> 2012-08-14 16:48:47 +1200
你会注意到它看起来有点不对,但那是因为它再次使用我的本地时区,所以它是准确的,但目前在我的时区。然后,您可以将其转换为您想要的任何时区。
1.9.3p194> Time.parse(time).in_time_zone('Moscow')
=> Tue, 14 Aug 2012 08:48:47 MSK +04:00
1.9.3p194> Time.parse(time).in_time_zone('Brisbane')
=> Tue, 14 Aug 2012 14:48:47 EST +10:00
这也适用于您的datetime
字符串。
如果要使用特定时区,可以按如下方式进行
1.9.3p194> Time.find_zone('Tokyo').parse('2012-08-14 14:48:47 +0500')
=> Tue, 14 Aug 2012 18:48:47 JST +09:00