Используйте Python, чтобы узнать, существует ли часовой пояс в летнее время

У нас есть сервер, который работает в GMT. Мне нужно написать сценарий Python, который определяет, является ли это в настоящее время (в эту самую секунду) летнее время (DST) в Лос-Анджелесе, Калифорния. Как я могу это сделать? Я взглянул на pytz и время, но я не могу понять это. Я понимаю, что я мог бы создать некоторую логику, такую ​​как сравнение текущего времени в LA с GMT, но было бы намного более чистым, если бы я мог использовать стандартную библиотеку.

благодаря

Редактирование: Вот пример кода, который настраивает часовой пояс:

from pytz import timezone import pytz from datetime import datetime, timedelta tz = timezone('America/Los_Angeles') // Instantiate a datetime object using tz? 

Изменить: Вот фрагмент кода, который будет работать. Это не изящно, поэтому я спрашиваю, есть ли библиотека или что-то, что сделано для этого. Может быть, как функция is_dst ().

 utc = timezone("UTC") now = utc.localize(datetime.utcnow()) los_angeles_tz = timezone('America/Los_Angeles') los_angeles_time = now.astimezone(los_angeles_tz) delta = los_angeles_time.utcoffset() dstDelta = timedelta(hours=-8) is_dst = (delta == dstDelta) 

2 Solutions collect form web for “Используйте Python, чтобы узнать, существует ли часовой пояс в летнее время”

 import pytz from datetime import datetime, timedelta def is_dst(zonename): tz = pytz.timezone(zonename) now = pytz.utc.localize(datetime.utcnow()) return now.astimezone(tz).dst() != timedelta(0) 

Применение:

 >>> is_dst("America/Los_Angeles") False >>> is_dst("America/Sao_Paulo") True 
 from datetime import datetime import pytz isdst_now_in = lambda zonename: bool(datetime.now(pytz.timezone(zonename)).dst()) 

Пример:

 >>> isdst_now_in("America/Los_Angeles") # 2014-10-27 12:32:07 PDT-0700 True >>> isdst_now_in("Australia/Melbourne") # 2014-10-28 06:32:07 AEDT+1100 True 

Вот только версия time.tzset() Unix, использующая time.tzset() :

 import os import time from contextlib import contextmanager @contextmanager def local_timezone(zonename): #NOTE: it manipulates global state oldname = os.environ.get('TZ') try: os.environ['TZ'] = zonename time.tzset() yield finally: if oldname is None: del os.environ['TZ'] else: os.environ['TZ'] = oldname time.tzset() def time_isdst_now_in(zonename): with local_timezone(zonename): return time.localtime().tm_isdst > 0 

Использование одного и того же:

 >>> time_isdst_now_in('Europe/London') # 2014-04-17 18:42:11 BST+0100 True 

Примечание: time.daylight не используется из-за проблем в некоторых случаях .

  • Учебник Django - Исправлено неподтвержденное исключение (pytz не установлен)
  • Преобразование временной зоны Datetime с использованием pytz
  • Как проверить, локализован ли объект datetime с помощью pytz?
  • Получение правильного смещения часового пояса в Python с использованием локального часового пояса
  • Модуль pytz уже импортирован
  • pytz и astimezone () не могут применяться к наивному дате
  • Как выполнить команду в точное время раз в день в Django?
  • pytz: вернуть Olson Название часового пояса только от GMT GMT
  • Как настроить системный часовой пояс и передать его в pytz.timezone?
  • pytz.astimezone не учитывает летнее время?
  • pytz.timezone показывает странные результаты для Азии / Калькутты?
  •  
    Interesting Posts for Van-Lav

    Является ли openpyxl самым быстрым пакетом для чтения больших файлов xlsx?

    Python – поиск родительских ключей для определенного значения во вложенном словаре

    Как предварительно обрабатывать исходные файлы при запуске Sphinx?

    Итерации над dict, за исключением элементов x item

    Импортировать произвольно-названный файл в виде Python-модуля без создания файла байт-кода

    Требует ли Python глубокого знания всех классов в цепочке наследования?

    Включить html-файл в шаблон Jinja2

    Принятие только чисел в качестве входных данных в Python

    Лучший способ определить, находится ли последовательность в другой последовательности в Python

    В чем преимущества «доходности» и возврата к ней (позиции)?

    Не удается войти в rosetta

    Закрыть поток Python для предотвращения утечки памяти

    Фильтрация запросов Django по номеру недели ISO

    Используйте Часовню для обработки массивной матрицы

    Почему использование len (SEQUENCE) в значениях условий считается неправильным Pylint?

    Python - лучший язык программирования в мире.