У меня есть строки в формате hms в формате YMD, в которых был отключен часовой пояс. Но я знаю, что они в восточное время с летним временем.
Я пытаюсь преобразовать их в временные метки времени для UTC.
Я написал следующую функцию:
def ymdhms_timezone_dst_to_epoch(input_str, tz="US/Eastern"):
print(input_str)
dt = datetime.datetime.fromtimestamp(time.mktime(time.strptime(input_str,'%Y-%m-%d %H:%M:%S')))
local_dt = pytz.timezone(tz).localize(dt)
print(local_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
utc_dt = local_dt.astimezone(pytz.utc)
print(utc_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
e = int(utc_dt.strftime("%s"))
print(e)
return e
Given string `2015-04-20 21:12:07` this prints:
2015-04-20 21:12:07
2015-04-20 21:12:07 EDT-0400 #<- so far so good?
2015-04-21 01:12:07 UTC+0000 #<- so far so good?
1429596727
который выглядит нормально до отметки времени эпохи. Но http://www.epochconverter.com/epoch/timezones.php?epoch=1429596727 говорит, что он должен Среднее время по Гринвичу Apr 21 2015 06:12:07 UTC.
Что не так?