Как работать с датой в формате ISO 8601
Я получаю список сообщений из определенного чата. Информация о сообщении выглядит таким образом:
{"author": {"userid": "123", "nickname": "Name1"}, "content": "Some text1", "createdTime": "2021-01-12T15:41:52Z"}
{"author": {"userid": "456", "nickname": "Name2"}, "content": "Some text2", "createdTime": "2021-01-11T11:30:21Z"}
{"author": {"userid": "789", "nickname": "Name3"}, "content": "Some text3", "createdTime": "2021-01-11T10:10:47Z"}
Мне нужно вывести сообщения отправленные за определенную дату используя "createdTime". Как это можно сделать с модулем datetime?
Ответы (1 шт):
Автор решения: Кирилл Малышев
→ Ссылка
from datetime import date, datetime
messages = [
{"author": {"userid": "123", "nickname": "Name1"}, "content": "Some text1", "createdTime": "2021-01-12T15:41:52Z"},
{"author": {"userid": "456", "nickname": "Name2"}, "content": "Some text2", "createdTime": "2021-01-11T11:30:21Z"},
{"author": {"userid": "789", "nickname": "Name3"}, "content": "Some text3", "createdTime": "2021-01-11T10:10:47Z"}
]
dt = date(2021, 1, 11)
res = [message for message in messages if datetime.strptime(message["createdTime"], "%Y-%m-%dT%H:%M:%SZ").date() == dt]
print(res)