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 = time_in_summer_austral_hemisphere.in_time_zone(-2)   # set the timezone to UTC-3 ( zone without DST)   time_in_brazilian_not_dst = time_in_summer_austral_hemisphere.in_time_zone(-3)

  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?