pytz giving incorrect offset and timezone

Discussion in 'Python' started by Sanjay, Jul 12, 2007.

  1. Sanjay

    Sanjay Guest

    Hi All,

    Using pytz, I am facing a problem with Asia/Calcutta, described below.

    Asia/Calcutta is actually IST, which is GMT + 5:30. But while using
    pytz, it was recognized as HMT (GMT + 5:53). While I digged into the
    oslan database, I see the following:

    # Zone NAME GMTOFF RULES FORMAT [UNTIL]
    Zone Asia/Calcutta 5:53:28 - LMT 1880 # Kolkata
    5:53:20 - HMT 1941 Oct # Howrah Mean Time?
    6:30 - BURT 1942 May 15 # Burma Time
    5:30 - IST 1942 Sep
    5:30 1:00 IST 1945 Oct 15
    5:30 - IST

    Searching in this group, I saw a similar problem posted at
    http://groups.google.co.in/group/comp.lang.python/browse_thread/thread/55496e85797ac890
    without any solutions.

    I mailed to Stuart and also posted it at the launchpad of pytz, but
    did not get any response.

    Unable to know how to proceed further. Any suggestion will be of vital
    help.

    thanks
    Sanjay
    Sanjay, Jul 12, 2007
    #1
    1. Advertising

  2. On Jul 12, 11:47 am, Sanjay <> wrote:
    > Hi All,
    >
    > Using pytz, I am facing a problem with Asia/Calcutta, described below.
    >
    > Asia/Calcutta is actually IST, which is GMT + 5:30. But while using
    > pytz, it was recognized as HMT (GMT + 5:53). While I digged into the
    > oslan database, I see the following:
    >
    > # Zone NAME GMTOFF RULES FORMAT [UNTIL]
    > Zone Asia/Calcutta 5:53:28 - LMT 1880 # Kolkata
    > 5:53:20 - HMT 1941 Oct # Howrah Mean Time?
    > 6:30 - BURT 1942 May 15 # Burma Time
    > 5:30 - IST 1942 Sep
    > 5:30 1:00 IST 1945 Oct 15
    > 5:30 - IST
    >
    > Searching in this group, I saw a similar problem posted athttp://groups.google.co.in/group/comp.lang.python/browse_thread/threa...
    > without any solutions.
    >
    > I mailed to Stuart and also posted it at the launchpad of pytz, but
    > did not get any response.
    >
    > Unable to know how to proceed further. Any suggestion will be of vital
    > help.
    >
    > thanks
    > Sanjay


    I don't use pytz myself that often so I can't be sure, but I don't
    think it's a bug in pytz.

    The problem seems to be that the timezone has changed for the
    location. Now, without a date as reference, pytz can't know what
    timezone to use when constructing the tzinfo; you might want a date
    from the 1800's.

    When you're constructing the datetime with the tzinfo argument, you're
    saying: use this timezone as the local timezone. datetime_new (the
    constructor in C) never calls the tzinfo to verify that the timezone
    is still valid, it just uses it.

    On the other hand: When you construct a datetime with datetime.now()
    and pass a timezone, datetime_now (again, in C) calls the method
    fromutz() on the tzinfo object. Now the pytz tzinfo object has a
    reference by which to choose the current timezone for the location,
    and that's why it's correct when you use datetime.now() but not for a
    manual construction.

    A "workaround" (or maybe the proper way to do it) is to construct the
    datetime without a tzinfo set, and then use the localize() method on
    the tzinfo object, this will give you the correct result.

    >>> tz = pytz.timezone("Asia/Calcutta")
    >>> mydate = datetime.datetime(2007, 2, 18, 15, 35)
    >>> print tz.localize(mydate)

    2007-02-18 15:35:00+05:30
    Simon Percivall, Jul 12, 2007
    #2
    1. Advertising

  3. Sanjay

    Sanjay Guest

    Hi Simon,

    localize worked perfectly. Thanks a lot for the vital help! Your
    elaboration on the concepts was also very nice and informative!

    thanks
    Sanjay
    Sanjay, Jul 18, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. David Pratt

    Datetime, pytz and strange offset

    David Pratt, Dec 13, 2005, in forum: Python
    Replies:
    0
    Views:
    441
    David Pratt
    Dec 13, 2005
  2. Sanjay
    Replies:
    0
    Views:
    362
    Sanjay
    Jul 13, 2007
  3. _robby
    Replies:
    1
    Views:
    396
    Matt Nordhoff
    Mar 14, 2008
  4. aspineux
    Replies:
    3
    Views:
    206
    aspineux
    Oct 21, 2011
  5. Roy Smith
    Replies:
    4
    Views:
    240
    Roy Smith
    Jan 27, 2013
Loading...

Share This Page