converting datetime object in UTC to local time

i3dmaster i3dmaster at gmail.com
Fri Jul 6 09:40:04 CEST 2007


How about subclass datetime.tzinfo? That way you can use asttimezone
to transfer utc to localtime. It requires an aware object though not
naive. A bit more coding, but a lot less converting...

Jim

On Jul 3, 5:16 pm, Matt <m... at vazor.com> wrote:
> Hi all,
>
> So a lot of digging on doing this and still not a fabulous solution:
>
> import time
>
> # this takes the last_modified_date naivedatetime, converts it to a
> # UTC timetuple, converts that to a timestamp (seconds since the
> # epoch), subtracts the timezone offset (in seconds), and then
> converts
> # that back into a timetuple...   Must be an easier way...
> mytime = time.localtime(time.mktime(last_modified_date.utctimetuple())
> - time.timezone)
>
> lm_date_str = time.strftime("%m/%d/%Y %I:%M %p %Z", mytime)
>
> last_modified_date is a naivedatetime.datetimeobject
>
> A previous version gave me something like:
>
> mytime =datetime.datetime.fromtimestamp(time.mktime(last_modified_date.utctimetuple())
> - time.timezone)
>
> lm_date_str = mytime.strftime("%m/%d/%Y %I:%M %p %Z")
>
> But this gave me no timezone since thedatetimeobject is still
> naive.  And I'm going from adatetimeto a timetuple to a timestamp
> back to adatetime...
>
> All this seems like a lot of monkeying around to do something that
> should be simple -- is there a simple way to do this without requiring
> some other module?
>
> thx
>
> Matt





More information about the Python-list mailing list