РЕДАКТИРОВАНИЕ: Я хочу конвертировать время UTC в моей стране UTC (Испания).Я использую модуль pytz, чтобы сделать преобразование, но в результате я получаю UTC-1, а не UTC + 1.Это мой код:
import datetime
import pytz
madrid = pytz.timezone("Europe/Madrid")
UTC_time = datetime.datetime.strptime("2019-03-01 14:45","%Y-%m-%d %H:%M")
madrid_dt = madrid.localize(UTC_time, is_dst=None)
MadridTime = madrid_dt.astimezone(pytz.utc).strftime ("%Y-%m-%d %H:%M")
И это вывод:
UTC_Time: 2019-03-01 14:45:00
MadridTime: 2019-03-01 13:45
Мне нужно, чтобы MadridTime вернул 15:45 вместо 13:45.Что я делаю не так?
РЕДАКТИРОВАНИЕ2: С вашей помощью я понял, что я путаю использование локализации и astimeszone.Теперь я сталкиваюсь с двумя новыми проблемами.Это новый код:
import datetime
import pytz
dt = datetime.datetime.strptime('2019-03-01 14:45','%Y-%m-%d %H:%M')
madrid_tz = pytz.timezone('Europe/Madrid')
madrid = dt.astimezone(madrid_tz)
print(madrid)
# 2019-03-01 14:45:00+01:00
print(madrid.strftime ("%Y-%m-%d %H:%M"))
# 2019-03-01 14:45
Проблема 1. При запуске этого кода в Windows 10, Python3, ожидаемый вывод был 2019-03-01 15:45:00
, а не 2019-03-01 14:45:00+01:00
.Я попытался отформатировать его с помощью strftime ("%Y-%m-%d %H:%M")
, но это не помогло.
Проблема 2: Запуск этого кода в Raspberrypi (где я буду запускать код, когда я закончу), Python3, я получаюОшибка ValueEr в этой строке madrid = dt.astimezone(madrid_tz)
.Ошибка ValueError: astimezone() cannot be applied to a naive datetime
Есть идеи?