Strange behavior of ActiveSupport::TimeZone

I was working with the method “in_time_zone” for the class
ActiveSupport::TimeZone, when I found an unwanted behavior.

I want to set my sights so that display the times for the main zone of
Brazil (UTC-3). During the period not DST there is no problem.
Instead to view the times for the period DST there are a problem: the
southern Brazilian states adopt DST (which means UTC-2), while the
states in the north do not use DST (which means UTC-3).

then to overcome this I was going to do this:

#on application.rb
config.time_zone = ‘Brasilia’

#on a generic view


generate a time in the summer austral hemisphere

time_in_summer_austral_hemisphere = Time.local(2010,1,1)

set the timezone to UTC-2 (DST zone)

time_in_brazilian_dst =

set the timezone to UTC-3 ( zone without DST)

time_in_brazilian_not_dst =

puts time_in_brazilian_dst

Fri, 01 Jan 2010 00:00:00 GST -02:00

puts time_in_brazilian_not_dst
Fri, 01 Jan 2010 00:00:00 BRST -02:00

As you can see, both the conversion to UTC-2 or UTC-3 shows that the
same time

anyone have any idea why this behavior?