Setting Fixed Time Zone (without time savings)

18 views
Skip to first unread message

FF

unread,
Dec 21, 2009, 2:19:41 PM12/21/09
to Ruby on Rails: Talk
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

Jeffrey L. Taylor

unread,
Dec 21, 2009, 6:01:35 PM12/21/09
to Ruby on Rails: Talk

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

FF

unread,
Dec 22, 2009, 1:14:26 PM12/22/09
to Ruby on Rails: Talk
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
On 21 dic, 20:01, "Jeffrey L. Taylor" <r...@abluz.dyndns.org> wrote:


> 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/).

Jeffrey L. Taylor

unread,
Dec 22, 2009, 3:05:42 PM12/22/09
to Ruby on Rails: Talk

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

FF

unread,
Dec 23, 2009, 1:58:56 PM12/23/09
to Ruby on Rails: Talk
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

Jeffrey L. Taylor

unread,
Dec 23, 2009, 6:19:42 PM12/23/09
to Ruby on Rails: Talk
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

> --
>
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

Jeffrey L. Taylor

unread,
Dec 23, 2009, 7:31:20 PM12/23/09
to Ruby on Rails: Talk
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

FF

unread,
Dec 24, 2009, 9:06:53 AM12/24/09
to Ruby on Rails: Talk
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

On 23 dic, 21:31, "Jeffrey L. Taylor" <r...@abluz.dyndns.org> wrote:
> 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
>

Frederick Cheung

unread,
Dec 24, 2009, 11:36:29 AM12/24/09
to Ruby on Rails: Talk

On Dec 23, 7:58 pm, FF <fabia...@gmail.com> wrote:
> 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

FF

unread,
Dec 28, 2009, 5:56:26 PM12/28/09
to Ruby on Rails: Talk
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
Reply all
Reply to author
Forward
0 new messages