使用时区分析Python中的日期时间
问题描述:
如何使用时区分析此日期和时间?使用时区分析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
我认为错误是在格式化时区。请帮助。
答
在我看来,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]>
答
您可以分析使用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