2010-09-21 33 views

回答

2

,我能想出是将其转换为一个时间戳,然后使用datetime.utcfromtimestamp类方法

import time 
import datetime 

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

@大卫许:如果答案被接受,这也是有用的。你可以 - 如果答案是肯定的 - 接受**和**表决它是有用的。 – msw 2010-09-21 05:26:37

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' 

比较PLZ最好的:)取而代之的是不是一个好主意。最好的办法是转换为时间戳,然后再转换为日期时间。

最好的主意:

pytz.timezone( '欧洲/明斯克')本地化(datetime.datetime.now())

相关问题