TimeZoneInfo (arcpy.time)

Краткая информация

Класс TimeZoneInfo можно использовать для чтения и назначения часового пояса объекту datetime Python.

Обсуждение

Встроенные объекты datetime не поддерживают часовые пояса. После назначения часового пояса объекту datetime можно выполнять операции, связанные с часовыми поясами. Например, можно использовать часовой пояс, связанный со значением времени, и преобразовать его в другой часовой пояс.

Синтаксис

TimeZoneInfo (time_zone_id)
ПараметрОбъяснениеТип данных
time_zone_id

Корректный ИД часового пояса. Список доступных ИД часовых поясов можно получить с помощью функции ListTimeZones.

String

Обзор метода

МетодОбъяснение
tzname (dt)

Возвращает временную зону, соответствующую объекту datetime Python, dt, в виде строки.

Методы

tzname (dt)
ПараметрОбъяснениеТип данных
dt

Ссылка на объект datetime Python.

(Значение по умолчанию — None)

DateTime
Возвращено значение
Тип данныхОбъяснение
String

Имя часового пояса, соответствующего объекту datetime, dt.

Возвращает имя часового пояса, соответствующего объекту datetime, dt, в качестве строки.

Пример кода

Пример TimeZoneInfo 1

Следующий скрипт применяется часовой пояс "Тихоокеанское время" к объекту datetime Python. Затем скрипт проходит в цикле по каждому месяцу для демонстрации изменения часового пояса на "Тихоокеанское время" летом в соответствии с правилами перехода на летнее время.

import arcpy
import datetime

tzinfo = arcpy.time.TimeZoneInfo('Pacific Standard Time')

time = datetime.datetime(2011, 1, 1, tzinfo=tzinfo)

for delta in range(1, 13):
    next_date = time + arcpy.time.EsriTimeDelta(1 * delta, "months")
    print next_date, tzinfo.tzname(next_date)
Пример TimeZoneInfo 2

Следующий скрипт показывает, как преобразовать значение даты и времени в часовом поясе "Тихоокеанское время" в значения для пояса "Восточное время".

import arcpy
import datetime

from_tzinfo = arcpy.time.TimeZoneInfo('Pacific Standard Time')
target_tzInfo = arcpy.time.TimeZoneInfo('Eastern Standard Time')
from_time = datetime.datetime.now(from_tzinfo)
print "target_time =", str(from_time.astimezone(target_tzInfo))
5/10/2014