Модуль времени 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.

Другие вопросы по тегам