您可以分析這樣
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
這是正確的,不使用 '2012-1-1'.to_time.in_time_zone(' 莫斯科 '),但Time.parse(' 2012-1-1 ')。in_time_zone(' 莫斯科') – jtomasrl 2013-03-31 01:41:00