On Wed, Feb 17, 2010 at 4:37 PM, David Perlman <dperl...@wisc.edu> wrote: > OK, here's a function that does precisely what I want: > > def tzDelta(): > """by whatever means necessary, return the current offset of the local time > from utc.""" > s=time.time() > t,u=time.localtime(s),time.gmtime(s) > osec=3600*(t[3]-u[3]) + 60*(t[4]-u[4]) + (t[5]-u[5]) > return datetime.timedelta(seconds=osec) > > > As far as I can tell, this should always work. So wouldn't it be nice if > there were a less convoluted way to get this??
Here is a shorter version based on the LocalTimezone example, and it only gets the time once so there is no possible race condition: In [5]: from datetime import timedelta In [6]: import time In [15]: def utcoffset(): ....: if time.localtime().tm_isdst > 0: ....: return timedelta(seconds = -time.altzone) ....: return timedelta(seconds = -time.timezone) ....: In [16]: utcoffset() Out[16]: datetime.timedelta(-1, 68400) Kent _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor