2010-09-21 5 views

Répondre

2

Le meilleur que je peux trouver est de le convertir en un horodatage, puis utiliser la méthode de classe datetime.utcfromtimestamp

import time 
import datetime 

def to_utc(dateTime) 
    timeStamp = time.mktime(dateTime.timetuple()) + dateTime.microsecond 
    return datetime.datetime.utcfromtimestamp(timeStamp) 
+0

Hsu @ David : Si une réponse est acceptée, elle est probablement utile aussi. Vous pouvez - et si la réponse le justifie - accepter ** et ** voter comme utile. – msw

2
>>> import datetime 
>>> import pytz 
>>> datetime.datetime.now(pytz.timezone('Europe/Minsk')) 
datetime.datetime(2011, 8, 8, 15, 32, 7, 816893, tzinfo=<DstTzInfo 'Europe/Minsk' EEST+3:00:00 DST>) 
>>> x = datetime.datetime.now() 
>>> x 
datetime.datetime(2011, 8, 8, 15, 32, 26, 960839) 
>>> x.replace(tzinfo=pytz.timezone('Europe/Minsk')) 
datetime.datetime(2011, 8, 8, 15, 32, 26, 960839, tzinfo=<DstTzInfo 'Europe/Minsk' MMT+1:50:00 STD>) 
>>> x.replace(tzinfo=pytz.timezone('Europe/Minsk')).isoformat() 
'2011-08-08T15:32:26.960839+01:50' 
>>> datetime.datetime.now(pytz.timezone('Europe/Minsk')).isoformat() 
'2011-08-08T15:33:16.720865+03:00' 

Comparer plz :) Replace est pas une bonne idée. Le mieux est de convertir en horodatage puis de nouveau en datetime.

meilleure idée.

pytz.timezone (Europe/Minsk) localiser (datetime.datetime.now())

Questions connexes