Я пытаюсь преобразовать время с помощью этой функции:
import pytz
from datetime import datetime
def ConvertTimezone(FromZone, timestring, ToZone):
print("Start of ConvertTimezone from " + str(FromZone) + " " + timestring + " to " + str(ToZone))
TFORMAT = "%Y %m %d %H:%M"
ftz = pytz.timezone(FromZone)
ttz = pytz.timezone(ToZone)
dt_str = datetime.strptime(timestring, TFORMAT)
dt_obj_ftz = ftz.localize(dt_str) #localising accounts for daylight savings
totime = dt_obj_ftz.astimezone(ttz)
return totime.strftime(TFORMAT)
print(ConvertTimezone("Etc/GMT+10", "2020 08 30 12:00", "Etc/GMT-12"))
Я ожидаю, что результат будет
"2020 08 29 14:00" # the day before
но вместо этого я получаю это, как будто он ДОБАВИЛ разницу в часовом поясе (22 часа), а не вычел ее:
"2020 08 31 10:00" # the day after
Предполагается, что пользователи могут использовать любой из часовых поясов в pytz.all_timezones. Что я должен сделать, чтобы это сработало?
Australia/Melbourne
). ЗоныEtc/GMT±X
обычно используются для кораблей в море. - person Matt Johnson-Pint   schedule 26.08.2020