Python-如何将Datetimefield从模型转换为UTC时区

时间:2010-09-21 01:21:43

标签: python

对于python,如何将DatetimeField(具有我的本地服务器时间)转换为UTC区域中的datetimefield?

2 个答案:

答案 0 :(得分:2)

我能想到的最好的方法是将其转换为时间戳,然后使用datetime.utcfromtimestamp类方法

import time
import datetime

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

答案 1 :(得分: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())