我想将时间从一个时区转换为另一个。
例子:
我第一次拥有的图像,比如
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
那么有没有办法以更好的方式完成同样的事情呢?
我想将时间从一个时区转换为另一个。
例子:
我第一次拥有的图像,比如
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
那么有没有办法以更好的方式完成同样的事情呢?
你试过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