У меня бот-парсер погоды для телеграм канала. Есть модуль schedule. По плану бот должен каждый день в 8:00 часов утра (по Ташкенту) заработать и парсить погоду. В скрипте указано время "каждый день в 8:00". Деплоил бота в Хероку. Настроил в Reveal config TZ=Asia/Tashkent. Так как у нас ГМТ +5. А Хероку по UTC работает как я понимаю. Большая проблема в том, что когда бот запускается в 8:00 утра (по Ташкент) Хероку парсит данные которые отображаются в днем ранее. Я одного не понимаю, допустим когда у нас 8:00 в UTC 3:00 (ГМТ+5), но 3:00 это число СЕГОДНЯ же? Так как после 00:00 это уже СЕГОДНЯ. Но Хероку показыват сегодняшнюю дату как вчера, а завтрашнюю как сегодня. Несколько раз сменил сервера с США в Европу и наоборот. Не реагирует. По логике ошибка правильная, так как когда бот запускается 8:00 по Ташкенту на Хероку время 03:00 и когда парсится сайт то отображаются данные которые должны отображаться в 03:00. Но все же это не завтра а сегодня. Этого не понимаю. Здесь много лучших программистов и умных людей. Бот запускается в 8:00 утра и постит на канале, но данные не та. Как мне быть? Извиняюсь за грамматику.
Столько воды... Если бот запускается в указанное вами время, а данные с парсинга не те - так переделайте его под нормальные API, бесплатных которых вагон с тележкой
А по вопросу - сайт, откуда вы берете данные, вполне может отдавать погоду относительно времени айпи адреса, с которого пришёл запрос.
в Европу
На стандартном бесплатном тарифе чаще всего (или даже всегда) попадается сервера из Ирландии (Дублин) - UTC+0 https://time.is/Dublin
mercmarcus, т.е. бот запускается вовремя (в 8 по Ташкенту), так? Во время запуска он неизвестно откуда парсит данные погоды, которая в результате получается не на тот день. Значит причины могут быть 2: 1) Ваш парсер погоды неправильно манипулирует датой (неправильно рассчитывает для передачи на сайт погоды), 2) Сайт, откуда парсятся данные, на UTC 3:00 выдает вчерашние данные.
Без кода маловероятно что-то подсказать.
Ребята, это логика. Когда Хероку парсить сайт, там в сервере 03:00 и там отображаются данные которые отображающие в 03:00. В это время в Ташкенте 08:00 утра и здесь все норм отображается, потому что сайт работает по времени Ташкента (08:00). Но в это время там в Хероку 03:00 и парсится данные которые отображаются в 03:00. Проблема в этом.
Представьте, вы в США или в Ирландии. Сейчас у вас время 03:00. А у нас 08:00. Вот, когда вы открывете сайт какие данные вы увидите? Данные которые отображаются в 03:00 или которые отображающих 08:00? Думаю сервера тоже с таким принципом работы. Я открываю сайт и я увижу данных которые отображаются в 8:00. А вы увидете данных по 03:00. Потому что у вас 03:00.