Модуль времени Python: летнее время
У меня есть вопрос о питоне time
модуль специально (не спрашивая о datetime
, pytz
или любой другой модуль).
Как я могу узнать, используя time
модуль, является ли это в настоящее время летнее время (DST) в месте и дате, где я в настоящее время нахожусь?
Документация кажется расплывчатой по этой теме. Я бы подумал что time.daylight
будет 0, если в настоящее время стандартное время (зима) отличается от нуля, если в настоящее время используется летнее время (лето), исходя из моей интерпретации формулировки строки документации: Nonzero if a DST timezone is defined.
Тем не менее, кажется, что это не то, что time.daylight
делает! В настоящее время здесь зимнее (стандартное) время, но time.daylight == 1
Как я могу использовать time
Модуль, чтобы узнать, является ли он в настоящее время DST? Или это невозможно? Спасибо!
3 ответа
Как я могу узнать, используя
time
модуль, является ли это в настоящее время летнее время (DST) в месте и дате, где я в настоящее время нахожусь?
Предполагая, что ваш компьютер настроен на правильный часовой пояс:
import time
is_dst = time.daylight and time.localtime().tm_isdst > 0
Это работает в моей системе. Может быть, ваша ОС установлена на DST?
Pytz - это хороший способ последовательно обрабатывать часовые пояса, преобразование местного времени и DST в Python. Извините за то, что не опубликовали реальный пример использования, но это хорошая идея, чтобы просмотреть документацию модуля, чтобы увидеть различные подводные камни и случаи использования преобразования DST.