В качестве входных данных у меня есть две строки временных меток: одна — местное время, другая — тот же момент времени UTC. Я хочу получить разницу между ними (в основном, чтобы получить смещение местного часового пояса) в виде строки в определенном формате, например. +1100 или -0500.
import datetime
local = '2018-01-31 18:34:42.172'
utc = '2018-01-31 23:34:42.172'
local_dt = datetime.datetime.strptime(local, '%Y-%m-%d %H:%M:%S.%f')
utc_dt = datetime.datetime.strptime(utc, '%Y-%m-%d %H:%M:%S.%f')
offset_timedelta = local_dt - utc_dt
offset = offset_timedelta.total_seconds() / 3600
offset
Out[8]: -5.0
Используя timedelta, я могу получить смещение как float (например, -5.0 выше). Оттуда я, вероятно, могу создать функцию для преобразования этого числа с плавающей запятой в строку в нужном мне формате, но мне любопытно, есть ли какой-либо метод datetime/timedelta или форматирование, которое мне не хватает, или какой-либо строковый формат, который выполнял бы работу с более чистым кодом и более эффективным.
Любая помощь будет оценена по достоинству.
отредактируйте, так как я вижу, что мой вопрос не ясен: есть ли способ получить «-0500», который мне нужен (строка в этом конкретном формате, а не с плавающей запятой), либо с помощью библиотеки даты и времени, либо с помощью форматирования строки?