Как преобразовать '2021-08-24T11:00:19Z' в datetime и найти дни между ним и текущим временем в django
Я получаю следующую строку publishedAt '2021-08-24T11:00:19Z'
из youtube's api для объекта video. Но я не понимаю, как преобразовать ее в объект datetime и найти часы между ней и текущим моментом.
Я попробовал следующий код, но он не сработал
view.py
from django.utils import timezone
from datetime import datetime
today = timezone.now()
publishedAt = datetime.fromtimestamp('2021-08-24T11:00:19Z')
daysOld = (today - publishedAt).days
Но я получаю следующую ошибку в этой строке publish_date = datetime.fromtimestamp('2021-08-24T11:00:19Z')
TypeError: an integer is required (got type str)
Я не понимаю, как преобразовать строку в объект datetime и получить разницу.
Строка, которую вы предоставили здесь, представляет собой дату, отформатированную по стандарту ISO 8601 [wiki]. Вы можете разобрать ее с помощью метода parser.isoparse(…)
[Python-doc] из пакета dateutil
:
>>> from dateutil.parser import isoparse
>>> isoparse('2021-08-24T11:00:19Z')
datetime.datetime(2021, 8, 24, 11, 0, 19, tzinfo=tzutc())
Таким образом, вы можете установить пакет с помощью:
pip3 install python-dateutil
и затем запустите это с:
from django.utils import timezone
from dateutil.parse import isoparse
today = timezone.now()
publish_date = isoparse('2021-08-24T11:00:19Z')
diff = today - publish_date