在Rails中转换timeZone的最佳方法

时间:2012-08-21 14:19:09

标签: ruby-on-rails timezone

我想将一个时区从一个时区转换为另一个时区。

示例:

我有第一次的图像,如

t=....
puts t
 => Sun Aug 12 00:00:00 +0200 2012

我想要完全相同的时间,但是在不同的时区。 我可以这样做:

mytimezone.local(t.year,t.month,t.day,t.hour,t.min)
=> Sun, 12 Aug 2012 00:00:00 BRT -03:00

那么有没有办法以更好的方式完成同样的事情?

1 个答案:

答案 0 :(得分:0)

您是否尝试过in_time_zone方法?

 > t = Time.parse("Sun Aug 12 00:00:00 +0200 2012")
 => 2012-08-12 02:00:00 +0400
 > t.in_time_zone('Eastern Time (US & Canada)')
 => Sat, 11 Aug 2012 18:00:00 EDT -04:00 
 > mytimezone = ActiveSupport::TimeZone.new('Eastern Time (US & Canada)')
 => (GMT-05:00) Eastern Time (US & Canada)
 > t.in_time_zone(mytimezone)
 => Sat, 11 Aug 2012 18:00:00 EDT -04:00