Следующий код для чтения и проверки даты в формате ISO8601 работает, как и ожидалось, в python 3.7.4 OSX. В Linux возникает ошибка
Python 3.6.8 (default, Oct 14 2019, 21:22:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> format_string = '%Y-%m-%dT%H:%M:%S%z'
>>> from datetime import datetime
>>> d = datetime.strptime('2019-11-05T00:00:00Z', format_string)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.6/_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib64/python3.6/_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data '2019-11-05T00:00:00Z' does not match format '%Y-%m-%dT%H:%M:%S%z'
Под OSX:
Python 3.7.4 (default, Jul 9 2019, 18:15:00)
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> format_string = '%Y-%m-%dT%H:%M:%S%z'
>>> from datetime import datetime
>>> d = datetime.strptime('2019-11-05T00:00:00Z', format_string)
>>> print(d)
2019-11-05 00:00:00+00:00
Я посмотрел эту статью , которая относится к вызовам библиотеки C, но, безусловно, Python должен бытьportable?
Два дистрибутива, которые я пробовал (Red Hat и EC2 Linux), имеют 3.6.8 из yum
, и оба выдают ошибку. Конечно, это не может быть разница версий?