[英]I get a this error when running scrapy spider ——> ValueError: time data '2022-10-10T13:00:00-07:00' does not match format '%Y-%m-%dT%H:%M:%S%z'
[英]ValueError: time data '2020-01-31T15:16:21+00:00' does not match format '%Y-%m-%dT%H:%M:%S%z'
我确实在获取 datetime 来解析这个时间数据时遇到了一些麻烦。 (这适用于 Windows,但不适用于 linux)
谁能告诉我为什么这在 Linux 上不起作用?
d1 = '2020-01-31T15:16:21+00:00'
d1 = datetime.datetime.strptime(d1, "%Y-%m-%dT%H:%M:%S%z")
它也不应该在 Windows 中工作。 %z
格式不支持时区的小时和分钟之间的冒号,如日期时间文档中所述。 您需要先删除冒号:
import datetime
import re
d1 = "2020-01-31T15:16:21+00:00"
# Remove all colons in the timezone part
d1 = re.sub(r"([\+-]\d\d):(\d\d)(?::(\d\d(?:.\d+)?))?", r"\1\2\3", d1)
d1 = datetime.datetime.strptime(d1, "%Y-%m-%dT%H:%M:%S%z") # now works normally
预期的%z
格式: ±HHMM[SS[.ffffff]]
根据上述格式解释正则表达式的含义: https : //regex101.com/r/EoOBHW/1
或者,您可以使用dateutil第三方库,它可以成功解析该字符串:
import datetime
from dateutil.parser import parse
d1 = parse("2020-01-31T15:16:21+00:00")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.