Получение UTC UTC в Python

В Python, как вы находите, какое время UTC смещается на компьютер?

  • Транспонирование матрицы в Python
  • Получить только новые сообщения электронной почты imaplib и python
  • Неопознанный или неподдерживаемый тип массива в функции cvGetMat в python opencv
  • Создание необработанного HTTP-запроса с сокетами
  • Как скомпилировать проект Visual Studio из командной строки?
  • Как вы отправляете фрейм Ethernet с поврежденной FCS?
  • Django создает CSV-файл, который содержит Unicode и может быть открыт непосредственно с помощью Excel
  • Как форматировать в numble savetxt так, что нули сохраняются только как «0»,
  • idle-python3.2 не запускается: жалобы на NameError: имя «Tk» не определено
  • Оптимальный способ вычисления парной взаимной информации с использованием numpy
  • Проблема с 2D-интерполяцией в SciPy, непрямоугольная сетка
  • Как выйти из всего приложения из потока Python?
  • 5 Solutions collect form web for “Получение UTC UTC в Python”

    gmtime() вернет время UTC, а localtime() вернет местное время, поэтому вычитание двух должно дать вам смещение utc.

    time.timezone :

     import time print -time.timezone 

    Он печатает смещение UTC в секундах (для учета летнего времени (DST) см. Time.altzone :

     is_dst = time.daylight and time.localtime().tm_isdst > 0 utc_offset = - (time.altzone if is_dst else time.timezone) 

    где utc offset определяется через: «Чтобы получить локальное время, добавьте utc offset в utc time».

    В Python 3.3+ есть атрибут tm_gmtoff если базовая библиотека C поддерживает его:

     utc_offset = time.localtime().tm_gmtoff 

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

    tm_gmtoff используется автоматически по дате, если он доступен на Python 3.3+:

     from datetime import datetime, timedelta, timezone d = datetime.now(timezone.utc).astimezone() utc_offset = d.utcoffset() // timedelta(seconds=1) 

    Чтобы получить текущее смещение UTC способом, который time.daylight проблему time.daylight и работает, даже если tm_gmtoff недоступен, можно использовать предложение @ jts для подстройки локального и UTC-времени:

     import time from datetime import datetime ts = time.time() utc_offset = (datetime.fromtimestamp(ts) - datetime.utcfromtimestamp(ts)).total_seconds() 

    Чтобы получить смещение UTC для прошлых / будущих дат, можно использовать временные pytz :

     from datetime import datetime from tzlocal import get_localzone # $ pip install tzlocal tz = get_localzone() # local timezone d = datetime.now(tz) # or some other local date utc_offset = d.utcoffset().total_seconds() 

    Он работает во время перехода на летнее время, он работает для прошлых / будущих дат, даже если местный часовой пояс имел разное смещение UTC в то время, например, по Европе / Москве в период 2010-2015 годов.

    Мне нравится:

     >>> strftime('%z') '-0700' 

    Сначала я попробовал ответить JTS, но это дало мне неправильный результат. Сейчас я в -0700, но он говорил, что я был в -0800. Но я должен был сделать какое-то преобразование, прежде чем я смог бы получить что-то, что мог бы вычесть, поэтому, возможно, ответ был более неполным, чем неправильным.

    Вот несколько кодов python3 с просто datetime и time в качестве импорта. НТН

     >>> from datetime import datetime >>> import time >>> def date2iso(thedate): ... strdate = thedate.strftime("%Y-%m-%dT%H:%M:%S") ... minute = (time.localtime().tm_gmtoff / 60) % 60 ... hour = ((time.localtime().tm_gmtoff / 60) - minute) / 60 ... utcoffset = "%.2d%.2d" %(hour, minute) ... if utcoffset[0] != '-': ... utcoffset = '+' + utcoffset ... return strdate + utcoffset ... >>> date2iso(datetime.fromtimestamp(time.time())) '2015-04-06T23:56:30-0400' 

    Это работает для меня:

     if time.daylight > 0: return time.altzone else: return time.timezone 
    Python - лучший язык программирования в мире.