Есть строка с «наивной» локальной датой вида
2008-09-17 14:04:00
. Нужно её распарсить в UTC datetime с включённой информацией о таймзоне. (Конечная задача — распечатать дату с суффиксом вроде UTC / UTC+04 через %Z, %z).
Вот такой несложный код выдаёт дату на 4 часа больше (меньше) чем было изначально — всё правильно. Но информации о временной зоне такой объект
не содержит. По крайней мере %Z с %z выдают пустоту.
dt = datetime.strptime("2008-09-17 14:04:00","%Y-%m-%d %H:%M:%S")
utc_struct_time = time.gmtime(time.mktime(dt.timetuple()))
utc_dt = datetime.fromtimestamp(time.mktime(utc_struct_time))
print dt.strftime("%Y-%m-%d %H:%M:%S")
Библиотеками типа pytz пользоваться не хочется — задача-то уже, считай, решена. Да и осилят ли они такую сложноту — мне пока неизвестно.