converting datetime object in UTC to local time

M

Matt

Hi all,

So a lot of digging on doing this and still not a fabulous solution:

import time

# this takes the last_modified_date naive datetime, 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 naive datetime.datetime object


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 the datetime object is still
naive. And I'm going from a datetime to a timetuple to a timestamp
back to a datetime...

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
 
I

i3dmaster

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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top