учетом указанного часового. Как это правильно делается? Потому что у меня костыль: `zone = (datetime.now(timezone("Europe/Kiev")))
num = int(str(zone).split("+")[-1].replace("0", "")[0])
status["change_time"] = time + timedelta(hours=num)` Если например Лондон часовой поставить то все сломается
Вот из вопроса не понятно ничего. Исходное время - это поясное или UTC? Что значит посчитать с учетом часового? Перевести UTC в поясное или наоборот?
Я иду на ftp сервре, там смотрю на нужный файл, смотрю его время последний модификации, и он например 5:00, но когда я смотрю через ftp-клиент filezilla у меня 7:00, я из Украины, а сервер в России и если на файл смотреть через IPmanager то время 8:00. Мне нужно пользователю в телеграм бот вернуть файл и время его модификации, но я не знаю как мне правильно прикрутить нужное время учитывая такую кашу с часовыми поясами. И я написал костыль.
from datetime import datetime, timezone, timedelta d = datetime.strptime('2021-12-22 10:11:12', '%Y-%m-%d %H:%M:%S').astimezone(timezone.utc) print(d) d = d.astimezone(timezone(timedelta(hours=2))) print(d)
Там только один момент - оно считает наивное время с учетом системного часового пояса. Если надо сделать честное UTC из того, что прилетело в строке, то костыль нужен, да. Но я пользуюсь таким: d = datetime.strptime('2021-12-22 10:11:12', '%Y-%m-%d %H:%M:%S').replace(tzinfo=timezone.utc)
Обсуждают сегодня