Python and timezones

shandy.b at gmail.com shandy.b at gmail.com
Thu Jul 3 19:18:08 EDT 2008


Nah, it's got to be something more than that.  A bunch of them are
screwed up.  It's showing America/Saskatchewan as UTC-06:59.

I think there's something wrong with my code.  I've put it up at a
pastebin so that it's easier to read.

http://pastebin.ca/1061776

On Jul 2, 11:22 am, Mensanator <mensana... at aol.com> wrote:
> On Jul 2, 12:43 am, "shand... at gmail.com" <shand... at gmail.com> wrote:
>
>
>
> > I'm trying to write some code to deal with world timezones, and I'm
> > getting a strange result.  America/Iqaluit should not be showing up in
> > UTC+00:00, but it is.  Can anyone see what's wrong with this code?
>
> > import time
> > from datetime import datetime
> > import os
> > import pytz
>
> > def getZoneNamesOnThisComputer():
> >     for i in pytz.all_timezones:
> >         if os.path.exists( os.path.join('/tmp/usr/share/zoneinfo/',
> > i)):
> >             yield i
>
> > def getZonesGroupedByOffset():
> >     '''return a dict of all the zone names , grouped by their offset
> >     eg:
> >     {'-0400': ['America/Blanc-Sablon', 'Etc/GMT+4'],
> >      '+0000': ['America/Iqaluit', 'Etc/GMT', 'Europe/Belfast', 'GB',
> > 'GMT'],
> >      ...
> >     }
> >     '''
> >     Y,M,D,h,m,s = time.localtime()[:6]
>
> >     zonesGroupedByOffset = {}
>
> >     for name in getZoneNamesOnThisComputer():
> >         tz = pytz.timezone(name)
> >         now = datetime(Y,M,D,h,m,s, tzinfo=tz)
> >         # strfime returns a string like "-0800" or "+0430" or "0000"
> >         offsetKey = now.strftime('%z')
> >         if not zonesGroupedByOffset.has_key(offsetKey):
> >             zonesGroupedByOffset[offsetKey] = []
> >         zonesGroupedByOffset[offsetKey].append(name)
> >     return zonesGroupedByOffset
>
> > z = getZonesGroupedByOffset()
> > print z['+0000']
>
> > # Why is America/Iqaluit showing up here???
>
> The database contains an error. Shit happens, deal with it.




More information about the Python-list mailing list