Как получить время отправленного сообщения в Telegram боте на Python

Рейтинг: 0Ответов: 1Опубликовано: 24.05.2023

Мне нужно получить время отправленного пользователем сообщения, чтобы внести их в БД mySQL. Я использую aiogram

Ответы

▲ 2Принят

Дата пересланного сообщения

Можно использовать метод message.forward_date, данная инструкция возвращает исходную дату отправленного пересланного сообщения. Чтобы продемонстрировать, я написал тестового бота, который формирует дату и время в виде сообщения, а так же принтует результат от forward_date.

from aiogram import Bot, Dispatcher, executor, types

bot = Bot(token="<ТВОЙ КЛЮЧ СЮДА>")
dp = Dispatcher(bot)

@dp.message_handler()
async def handle_message(message: types.Message):
    forward_date = message.forward_date
    formatted_date = forward_date.strftime("%Y-%m-%d")
    formatted_time = forward_date.strftime("%H:%M:%S")

    response_text = f"Дата и время сообщения: {formatted_date} {formatted_time}"
    print(forward_date)
    await message.reply(response_text)

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)

Если переслать сообщение данному боту, он вернет в виде сообщения:

результат работы бота

Вывод в консоли:

2023-05-24 17:18:00

Дата отправленного сообщения

Чтобы получить дату сообщения отправленного в бота, можно использовать метод message.date, по аналогии в коде выше нужно изменить метод с message.forward_date на message.date

Результат:

введите сюда описание изображения

Вывод в консоли:

2023-05-25 08:59:47