Setting Fixed Time Zone (without time savings)

Hi, all

Ruby 1.8.6 Rails 2.3.2

Environment.rb config.time_zone = 'Buenos Aires'

This zone is usually GMT -3:00hs but in this moment os the year it gives GMT -2.00 hs because the world time saving conventions....but...our country (Argentina) don't adopt the time saving convention this year... How can I set the time zone to get an fixed GMT -3.00 ? Thanks Fabián

Quoting FF <fabianfx@gmail.com>:

Hi, all

Ruby 1.8.6 Rails 2.3.2

Environment.rb config.time_zone = 'Buenos Aires'

This zone is usually GMT -3:00hs but in this moment os the year it gives GMT -2.00 hs because the world time saving conventions....but...our country (Argentina) don't adopt the time saving convention this year... How can I set the time zone to get an fixed GMT -3.00 ?

Update/Patch your OS, seriously. First example below is on a newly installed OpenSuSE 11.2. Or second method below (per http://rails.rubyonrails.org/). Both are UTC -03:00. You indicate that your computer is giving you Buenos Aires is UTC -02:00. If the OS has been patched recently, try restarting the Rails server to get the new TZ info.

tz = ActiveSupport::TimeZone["Buenos Aires"]

=> #<ActiveSupport::TimeZone:0xb6e9670c @tzinfo=nil, @utc_offset=-10800, @name="Buenos Aires">

tz = ActiveSupport::TimeZone[-3]

=> #<ActiveSupport::TimeZone:0xb6e966f8 @tzinfo=nil, @utc_offset=-10800, @name="Brasilia">

HTH, Jeffrey

Hi Jeffrey.

My OS is WindowsXP SP3. The time saving is running ok for all the apps in the computer. So my computer is giving me, UTC -03:00. Rails with the time_zone set to "Buenos Aires"...gives -02:00 so the problem is only with Rails.

Fabián

Quoting FF <fabianfx@gmail.com>: > Quoting FF <fabia...@gmail.com>: > > > Hi, all > > > Ruby 1.8.6 > > Rails 2.3.2 > > > Environment.rb > > config.time_zone = 'Buenos Aires' > > > This zone is usually GMT -3:00hs but in this moment os the year it > > gives GMT -2.00 hs because the world time saving > > conventions....but...our country (Argentina) don't adopt the time > > saving convention this year... > > How can I set the time zone to get an fixed GMT -3.00 ? > > Update/Patch your OS, seriously. First example below is on a newly installed > OpenSuSE 11.2. Or second method below (perhttp://rails.rubyonrails.org/). > Both are UTC -03:00. You indicate that your computer is giving you Buenos > Aires is UTC -02:00. If the OS has been patched recently, try restarting the > Rails server to get the new TZ info. > > >> tz = ActiveSupport::TimeZone["Buenos Aires"] > > => #<ActiveSupport::TimeZone:0xb6e9670c @tzinfo=nil, @utc_offset=-10800, @name="Buenos Aires">>> tz = ActiveSupport::TimeZone[-3] > > => #<ActiveSupport::TimeZone:0xb6e966f8 @tzinfo=nil, @utc_offset=-10800, @name="Brasilia">

Hi Jeffrey.

My OS is WindowsXP SP3. The time saving is running ok for all the apps in the computer. So my computer is giving me, UTC -03:00. Rails with the time_zone set to "Buenos Aires"...gives -02:00 so the problem is only with Rails.

Fabián

Which version of ActiveSupport do you have? I had assumed that TZ info was coming from the OS, but digging into the Rails libraries, that turns out not to be true. Shame on me. The information is in:

activesupport-2.x.y/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb

Note: if the version of tzinfo is different, this probably is where your problem is. I checked ActiveSupport 2.3.3 and 2.3.5 and they are the same.

Jeffrey

Jeffrey

My Path is:

activesupport-2.3.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ definitions/America/Argentina/Buenos_Aires.rb

I edited the file and commented this two lines I think may sense.

  # tz.transition 2009, 10, :o5, 1255834800   # tz.transition 2010, 3, :o4, 1269136800

And I Is working NOW !!!! Now I need to wait to the end of 2010 to see what our country decides to do about time saving and repeat (or not) the comment for the lines:

tz.transition 2010, 10, :o5, 1287284400 tz.transition 2011, 3, :o4, 1300586400

Thanks a lot. Fabián

Interesting,   I have the same two lines in my file and yet on my system, 'Buenos Aires' timezone is -3:00. I am beginning to suspect that on Linux, the system TZ info is used. I'll dig into it some more.

Jeffrey

Quoting FF <fabianfx@gmail.com>:

I think you have found a bug.

6.months.ago.in_time_zone(ActiveSupport::TimeZone['Buenos Aires'])

=> Tue, 23 Jun 2009 21:21:43 ART -03:00

6.months.ago.in_time_zone(ActiveSupport::TimeZone['Buenos Aires']).dst?

=> false

Time.now.in_time_zone(ActiveSupport::TimeZone['Buenos Aires'])

=> Wed, 23 Dec 2009 22:22:06 ARST -02:00

Time.now.in_time_zone(ActiveSupport::TimeZone['Buenos Aires']).dst?

=> true

Commenting out the lines you reference below:

jeff@odysseus:~/Rails/amethyst2> script/console test Loading test environment (Rails 2.3.5)

6.months.ago.in_time_zone(ActiveSupport::TimeZone['Buenos Aires'])

=> Tue, 23 Jun 2009 21:24:17 ART -03:00

6.months.ago.in_time_zone(ActiveSupport::TimeZone['Buenos Aires']).dst?

=> false

Time.now.in_time_zone(ActiveSupport::TimeZone['Buenos Aires'])

=> Wed, 23 Dec 2009 21:24:32 ART -03:00

Time.now.in_time_zone(ActiveSupport::TimeZone['Buenos Aires']).dst?

=> false

Time.now.in_time_zone(ActiveSupport::TimeZone['Buenos Aires']).utc

=> Thu Dec 24 00:26:01 UTC 2009

The ActiveSupport::TimeZone['Buenos Aires'] object has the base offset (-3). Finding out if Daylight Savings is in effect requires specifying a date.

You want the glory/frustration of reporting this bug?

Jeffrey

Quoting FF <fabianfx@gmail.com>:

Well...I want the things working...with glory or frustratation... I know that there´s no a lot of buddies here in the south dealing with this rails problems...and I know too that rails do not how to know that our contry is the only in this zone that no use this year the time saving... So I appreciate a lot you atention and help adout this issua....you keep with the glory...I only want to know how do this this work... Thanks again Fabián

Jeffrey

My Path is:

activesupport-2.3.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ definitions/America/Argentina/Buenos_Aires.rb

I edited the file and commented this two lines I think may sense.

# tz.transition 2009, 10, :o5, 1255834800 # tz.transition 2010, 3, :o4, 1269136800

You might try updating your tzinfo gem (if you have it installed it takes precendence over the one bundled in rails) - new versions are released every so often incorporating changes to the definition files

Fred

That Works. I have tzinfo-0.3.12 gem Upgrade to tzinfo-0.3.15 gem Thanks a lot to all of the buddies Fabián