strptime() не имеет поддержки для часовых поясов. Таким образом, вы можете сделать преобразование игнорируя часовой пояс следующим образом:
datetime.strptime("2015-07-17 06:01:51.066141", "%Y-%m-%d %I:%M:%S.%f").strftime("%s")
'1437102111'
Или для того, чтобы избежать использования% с, как предложено ниже в commments:
from datetime import datetime
(datetime.strptime("2015-07-17 06:01:51.066141", "%Y-%m-%d %I:%M:%S.%f") - datetime(1970, 1, 1)).total_seconds()
1437112911.066141
Обратите внимание, что это рабочая версия для Python 2, вы также можете проверить решения для других версий. here
В противном случае вам придется использовать другие библиотеки (django.utils или email.utils), которые поддерживают часовые пояса, или самостоятельно выполняют разбор часового пояса.
P.S.:
Как представляется, strptime docs имеет поддержку часового пояса, но на самом деле он не был реализован. Попробуйте:
datetime.strptime("2015-07-17 06:01:51.066141+00:00", "%Y-%m-%d %I:%M:%S.%f%z").strftime("%s")
, и вы увидите, что он не поддерживается. Вы также можете проверить его, выполнив поиск более подробно о strptime()
https: // документы .python.org/2/library/datetime.html # strftime-and-strptime-behavior – Alik
Вы даже прочитали документ, прежде чем спрашивать? Или [посмотрел на сторонние библиотеки] (https://pypi.python.org/pypi?%3Aaction=search&term=date+parsing&submit=search)? – bufh
Я дал, что try-get - ValueError: данные времени '2015-07-17 06: 01: 51.066141 + 00: 00' не соответствует формату '% Y-% m-% d% H:% M:% S .% f +% Z ' – user2119554