FAQ
Does python have an equivalent of the java Timezone object?

I need to be able to get offsets for timezones (only U.S. time zones
at the moment)

Search Discussions

  • Daniel Kluev at May 23, 2011 at 10:48 am

    On Mon, May 23, 2011 at 9:32 PM, loial wrote:
    Does python have an equivalent of the java Timezone object?

    I need to be able to get offsets for timezones (only U.S. time zones
    at the moment)
    Depends on what exactly do you want. If you need to convert timezone
    name into current offset, you should use [1] or [2].
    If you just need to handle known offsets for datetime objects, there
    is tzinfo class in datetime module, [3].


    [1] http://pypi.python.org/pypi/PosixTimeZone/0.9.4
    [2] http://pypi.python.org/pypi/pytz/2011g
    [3] http://docs.python.org/library/datetime.html#tzinfo-objects

    --
    With best regards,
    Daniel Kluev
  • Loial at May 23, 2011 at 11:56 am
    Thanks...but being a python newbie I am struggling to understand how
    to do this.

    How can I use tzinfo to do the equivalent of what I do in Java, which
    is :

    TimeZone tz1 = TimeZone.getDefault();

    long localOffset = tz1.getOffset(date.getTime());

    TimeZone tz2 = TimeZone.getTimeZone("EST");

    long remoteOffset = tz2.getOffset(date.getTime());

    Any help appreciated


    On May 23, 11:48?am, Daniel Kluev wrote:
    On Mon, May 23, 2011 at 9:32 PM, loial wrote:
    Does python have an equivalent of the java Timezone object?
    I need to be able to get offsets for timezones (only U.S. time zones
    at the moment)
    Depends on what exactly do you want. If you need to convert timezone
    name into current offset, you should use [1] or [2].
    If you just need to handle known offsets for datetime objects, there
    is tzinfo class in datetime module, [3].

    [1]http://pypi.python.org/pypi/PosixTimeZone/0.9.4
    [2]http://pypi.python.org/pypi/pytz/2011g
    [3]http://docs.python.org/library/datetime.html#tzinfo-objects

    --
    With best regards,
    Daniel Kluev
  • Daniel Kluev at May 23, 2011 at 12:33 pm

    On Mon, May 23, 2011 at 10:56 PM, loial wrote:
    Thanks...but being a python newbie I am struggling to understand how
    to do this.

    How can I use tzinfo to do the equivalent of what I do in Java, which
    is :

    TimeZone tz1 = TimeZone.getDefault();

    long localOffset = tz1.getOffset(date.getTime());

    TimeZone tz2 = TimeZone.getTimeZone("EST");

    long remoteOffset = tz2.getOffset(date.getTime());
    from pytz import timezone, FixedOffset
    import time
    from datetime import datetime
    local_tz = FixedOffset(-time.timezone/60)
    time.timezone returns local timezone in seconds and negative sign.
    FixedOffset converts it into tzinfo object.
    now = datetime.now()
    local_tz.utcoffset(now)
    datetime.timedelta(0, 36000)

    utcoffset() returns timedelta object as offset. It requires datetime
    object as first parameter due to weird API of base tzinfo class, but
    it is not used in calculation, and you can pass any other object,
    including None instead, like `local_tz.utcoffset(None)`
    remote_tz = timezone("EST")
    remote_tz.utcoffset(now)
    datetime.timedelta(-1, 68400)

    You can add or substract these timedelta objects directly from
    datetime objects or use astimezone():
    now = datetime.now(local_tz)
    now
    datetime.datetime(2011, 5, 23, 22, 41, 48, 398685, tzinfo=pytz.FixedOffset(600))
    now.astimezone(remote_tz)
    datetime.datetime(2011, 5, 23, 7, 41, 48, 398685, tzinfo=<StaticTzInfo 'EST'>)


    --
    With best regards,
    Daniel Kluev
  • Miki Tebeka at May 23, 2011 at 1:06 pm

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedMay 23, '11 at 10:32a
activeMay 23, '11 at 1:06p
posts5
users3
websitepython.org

People

Translate

site design / logo © 2022 Grokbase