Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   converting datetime object in UTC to local time (http://www.velocityreviews.com/forums/t519484-converting-datetime-object-in-utc-to-local-time.html)

Matt 07-04-2007 12:16 AM

converting datetime object in UTC to local time
 
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.utct imetuple())
- 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_m odified_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


i3dmaster 07-06-2007 07:40 AM

Re: converting datetime object in UTC to local time
 
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...@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.utct imetuple())
> - 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





All times are GMT. The time now is 12:51 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57