Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #6059 > unrolled thread

Python 2.6 and timezones

Started byloial <jldunn2000@gmail.com>
First post2011-05-23 03:32 -0700
Last post2011-05-23 23:33 +1100
Articles 4 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  Python 2.6 and timezones loial <jldunn2000@gmail.com> - 2011-05-23 03:32 -0700
    Re: Python 2.6 and timezones Daniel Kluev <dan.kluev@gmail.com> - 2011-05-23 21:48 +1100
      Re: Python 2.6 and timezones loial <jldunn2000@gmail.com> - 2011-05-23 04:56 -0700
        Re: Python 2.6 and timezones Daniel Kluev <dan.kluev@gmail.com> - 2011-05-23 23:33 +1100

#6059 — Python 2.6 and timezones

Fromloial <jldunn2000@gmail.com>
Date2011-05-23 03:32 -0700
SubjectPython 2.6 and timezones
Message-ID<46c24750-ac9b-4d75-835c-5403ff2ea959@d28g2000yqf.googlegroups.com>
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)


[toc] | [next] | [standalone]


#6062

FromDaniel Kluev <dan.kluev@gmail.com>
Date2011-05-23 21:48 +1100
Message-ID<mailman.1971.1306147689.9059.python-list@python.org>
In reply to#6059
On Mon, May 23, 2011 at 9:32 PM, loial <jldunn2000@gmail.com> 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

[toc] | [prev] | [next] | [standalone]


#6069

Fromloial <jldunn2000@gmail.com>
Date2011-05-23 04:56 -0700
Message-ID<932c351d-0dbd-4d5b-8151-e695b4b83fe1@z37g2000vbl.googlegroups.com>
In reply to#6062
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 <dan.kl...@gmail.com> wrote:
> On Mon, May 23, 2011 at 9:32 PM, loial <jldunn2...@gmail.com> 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

[toc] | [prev] | [next] | [standalone]


#6071

FromDaniel Kluev <dan.kluev@gmail.com>
Date2011-05-23 23:33 +1100
Message-ID<mailman.1975.1306154023.9059.python-list@python.org>
In reply to#6069
On Mon, May 23, 2011 at 10:56 PM, loial <jldunn2000@gmail.com> 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

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web