Python 使用pytz isn'的时间转换;不准确
我使用的是Python 使用pytz isn'的时间转换;不准确,python,pytz,Python,Pytz,我使用的是'2014.2'版本的pytz。我正在使用以下过程将亚洲/科威特时区(即本地时间)转换为UTC时间: >>> from_date = "2014/05/06 17:07" >>> from_date = dateutil.parser.parse(from_date) >>> utc=timezone('UTC') >>> from_date = from_date.replace(tzinfo=timezone(
'2014.2'
版本的pytz
。我正在使用以下过程将亚洲/科威特
时区(即本地时间)转换为UTC
时间:
>>> from_date = "2014/05/06 17:07"
>>> from_date = dateutil.parser.parse(from_date)
>>> utc=timezone('UTC')
>>> from_date = from_date.replace(tzinfo=timezone('Asia/Kuwait')).astimezone(utc)
>>> from_date
datetime.datetime(2014, 5, 6, 13, 55, tzinfo=<UTC>)
>>> from_date.strftime("%b %d %Y %H:%M:%S" )
'May 06 2014 13:55:00'
>>自_date=“2014/05/06 17:07”
>>>from_date=dateutil.parser.parse(from_date)
>>>utc=时区(“utc”)
>>>from_date=from_date.替换(tzinfo=时区(“亚洲/科威特”))。astimezone(utc)
>>>自年月日起
datetime.datetime(2014,5,6,13,55,tzinfo=)
>>>起始日期.标准时间(“%b%d%Y%H:%M:%S”)
“2014年5月6日13:55:00”
实际UTC时间是2014年5月6日14:06:00,我在:Why
pytz
中找到了该时间,但该时间并未准确转换为实际时间。正如您所看到的,10-11分钟之间存在时差。
不要使用datetime。将()
替换为pytz
时区。从:
不幸的是,对于许多时区,使用标准datetime构造函数的tzinfo参数“不适用于”pytz
它不起作用的原因是pytz
时区包含历史数据,而datetime
不具备处理这些数据的能力
使用专用的时区。本地化()
方法:
>>> import dateutil.parser
>>> from pytz import timezone
>>> from_date = "2014/05/06 17:07"
>>> from_date = dateutil.parser.parse(from_date)
>>> from_date = timezone('Asia/Kuwait').localize(from_date).astimezone(timezone('UTC'))
>>> from_date
datetime.datetime(2014, 5, 6, 14, 7, tzinfo=<UTC>)
>>> from_date.strftime("%b %d %Y %H:%M:%S" )
'May 06 2014 14:07:00'
导入dateutil.parser
>>>从pytz导入时区
>>>from_date=“2014/05/06 17:07”
>>>from_date=dateutil.parser.parse(from_date)
>>>from_date=时区(“亚洲/科威特”)。本地化(from_date)。astimezone(时区(“UTC”))
>>>自年月日起
datetime.datetime(2014,5,6,14,7,tzinfo=)
>>>起始日期.标准时间(“%b%d%Y%H:%M:%S”)
“2014年5月6日14:07:00”
timezone.localize()
方法将时区正确应用于原始的datetime
对象。est=timezone('UTC')
?这是UTC,而不是美国东部时间。实际UTC时间更可能是2014年5月6日14:07:00。:-)科威特在1950年时的UTC偏移量为+3:12:00。时区对象默认为该值。正如Martijn的回答所指出的,您需要本地化it@MartijnPieters对不起,那是个打字错误。谢谢你<代码>本地化(),它是。