Python | Преобразование часового пояса

| | | | | | | |

Элементы даты и времени Python могут быть либо наивными, либо внимательными. В случае, если элемент datetime имеет tzinfo, в этот момент он знает. Что-то еще, дата и время наивны. Чтобы уточнить часовой пояс объекта datetime, определите абстрактный базовый класс tzinfo. В любом случае библиотека даты и времени Python просто характеризует концептуальный базовый класс для tzinfo и предоставляет другим возможность фактической реализации создания tzinfo. Здесь на помощь приходит модуль tz dateutil — он дает все необходимое для переключения восходящих часовых поясов с информации о часовом поясе вашей ОС.

Настройка:

Используйте pip или easy_install dateutil для установки. Убедитесь, что в операционной системе есть данные о часовом поясе.

В Linux они обычно находятся в /usr/share/zoneinfo , а пакет Ubuntu называется tzdata. В случае количества файлов и каталогов в /usr/share/zoneinfo , таких как Америка / и Европа /, можно продолжить.

Получить объект UTC tzinfo — вызвав tz.tzutc()

из dateutil import tz

tz.tzutc ()

tzutc()

Смещение равно 0 при вызове utcoffset() с объектом даты/времени UTC.


import datetime

tz.tzutc(). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (0) 

Передать путь к файл часового пояса в gettz() , чтобы получить объекты tzinfo для других часовых поясов.


tz.gettz( `США/Тихоокеанский регион` )

< /table>

tzfile (`/usr/share/zoneinfo/US/Pacific`) 

< / p>

tz.gettz ( `Европа/Париж` )

tzfile(`/usr/share/zoneinfo/Европа/Париж` )

tz.gettz ( `США/Тихоокеанский регион ` ). utcoffset (datetime.datetime.utcnow())

datetime.timedelta (-1, 61200) 

Чтобы изменить элемент времени и даты, отличный от UTC до UTC, вам необходимо запомнить часовой пояс. Если вы попытаетесь изменить доверенное время на UTC, вы получите исключение ValueError. Чтобы запомнить наивный часовой пояс datetime, вы в основном вызываете стратегию replace() с нужным вам tzinfo. Как только элемент datetime имеет tzinfo, UTC можно изменить в этот момент, вызвав метод astimezone () с tz.tzutc () .

< / p>

abc = tz.gettz ( `US/Pacific` )

dat = datetime.datetime ( 2010 , 9 , 25 , 10 , 36 )

dat.tzinfo
dat.astimezone (tz. tzutc ())

Traceback (самый последний вызов последним): File "/u sr/lib/python2.6/doctest.py", строка 1228, в __run compileflags, 1) в файле test.globs "", строка 1, в dat.astimezone (tz.tzutc ()) ValueError: astimezone () не может применяться к простому дате и времени 

dat.replace (tzinfo = abc)

datetime.datetime (2010, 9, 25, 10, 36, tzinfo = tzfile(`/usr/share/zoneinfo/US/Pacific`)) 

За работой стоит все —

  • Элементы tzutc и tzfile являются двумя подклассами tzinfo.
  • Учитывая все обстоятельства, они знают правильное смещение UTC для изменения часового пояса (0 для tzutc) .
  • Элемент tzfile понимает, как сканировать документы zoneinfo рабочей структуры для получения фундаментальной противовесной информации.
  • Стратегия replace() для элемента nta datetime делает то, что имя — оно заменяет качества.
  • Когда у даты и времени есть tzinfo, стратегия astimezone(), скорее всего, будет учитывать время, используя противовесы UTC, а затем заменит текущую tzinfo новой tzinfo.

Код: Передайте аргумент ключевого слова tzinfos синтаксическому анализатору dateutil для обнаружения нераспознанных часовых поясов


parser.parse ( `Среда, 4 августа 2010 г., 18:30 (CDT)` ,

fuzzy = True )

дата и время. datetime (2010, 8, 4, 18, 30) 

tzinfos = { `CDT` : tz.gettz ( ` США / Центральный регион` )}

parser.parse ( `Среда, 4 августа 2010 г., 18:30 (CDT)` ,

нечеткий = True , tzinfos = tzinfos)

datetime.datetime (2010, 8, 4, 18, 30, tzinfo = tzfile(`/usr/share/zoneinfo/US/Central`)) 

Python | Преобразование часового пояса __del__: Questions

Python | Преобразование часового пояса _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method