2017-07-26 67 views
0

如何使用时区分析此日期和时间?使用时区分析Python中的日期时间

date_time=datetime.strptime("2017-06-04T01:00:00+04:00", '%Y-%m-%dT%H:%M:%S%Z') 

我收到错误,如

ValueError: time data '2017-06-04T01:00:00+04:00' does not match format '%Y-%m-%dT%H:%M:%S %Z

而我删除 ”%Z“ 的错误就像

ValueError: unconverted data remains: +04:00 

我认为错误是在格式化时区。请帮助。

回答

0

在我看来,strptime没有指示用于处理该格式的时区信息。指示时区的字符串部分需要没有冒号。

>>> from datetime import datetime 
>>> datetime.strptime("2017-06-04T01:00:00+0400", '%Y-%m-%dT%H:%M:%S%z') 
datetime.datetime(2017, 6, 4, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(0, 14400))) 

你可以安排到预处理当然是有一个正则表达式的日期:

>>> re.sub(r'(?<=[+=][0-9]{2}):', '', "2017-06-04T01:00:00+04:00") 
'2017-06-04T01:00:00+0400' 

如果你能允许自己使用的是不是标准分发的一部分,那么箭头将是合适的出库因为这对于时间戳尤其有用。

>>> import arrow 
>>> arrow.get("2017-06-04T01:00:00+04:00") 
<Arrow [2017-06-04T01:00:00+04:00]> 
1

您可以分析使用dateutil package

import dateutil.parser 

dateutil.parser.parse('2008-09-03T20:56:35.450686Z') 

datetime.datetime(2017, 6, 4, 1, 0, tzinfo=tzoffset(None, 14400)) 

的安装包

pip install python-dateutil