У меня есть следующая отметка времени 1550588656
, которая переводится в 2019-02-19 15:04:16+00:00
в соглашении о времени по UTC.
Я хочу преобразовать ее в соглашение о времени в моей стране (UTC или GMT -3 в это время года) поэтому он должен перевести на 2019-02-19 12:04:16+00:00
. Я прочитал другие вопросы SO, что сначала мне нужно преобразовать метку времени в объект Datetime с поддержкой UTC , а затем локализовать его, яделая это так
# string format time
naive_datetime = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
# string parse time
naive_datetime = datetime.strptime(naive_datetime, "%Y-%m-%d %H:%M:%S")
# make naive Datetime object UTC aware
utc_datetime = naive_datetime.replace(tzinfo=pytz.UTC)
Так что теперь это не наивный объект Datetime, отсюда я смогу локализовать его в часовой пояс моей страны.В Python это pytz.timezone('America/Santiago')
Так что должно получиться что-то вроде этого
cltime = pytz.timezone('America/Santiago')
local_datetime = utc_datetime.astimezone(cltime)
Но я получаю 2019-02-19 09:04:16-03:00
(UTC или GTM -6) в результате, и я надеваюне знаю почему.
Может кто-нибудь объяснить?Моя интуиция подсказывает мне, что, вероятно, я просто не смотрю на это, но я потратил на это несколько минут и пока не смог сказать.