Как преобразовать '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
Вернуться на верх