EsriTimeDelta (arcpy.time)

Резюме

Класс EsriTimeDelta представляет длительность, разницу между двумя датами или значениями времени.

Обсуждение

Класс EsriTimeDelta является альтернативой для базового класса datetime.timedelta Python и использует для интервалов внутренние единицы измерения времени Esri (месяцы, недели и т. д.), которые не может обрабатывать базовый объект timedelta Python.

Свойство timeStepInterval классов LayerTime и DataFrameTime возвращает объекты EsriTimeDelta.

Прежние версииПрежние версии:

До выхода версии 10.1 свойство timeStepInterval класса DataFrameTime возвращало базовые объекты datetime.timedelta Python.

Синтаксис

EsriTimeDelta (interval, units)
ПараметрОбъяснениеТип данных
interval

Интервал EsriTimeDelta.

Double
units

Единицы измерения EsriTimeDelta. Допустимые единицы измерения: миллисекунды, секунды, минуты, часы, дни, недели, месяцы, годы, десятилетия и века.

String

Свойства

СвойствоОбъяснениеТип данных
interval
(только чтение)

Интервал EsriTimeDelta.

Double
units
(только чтение)

Единицы измерения EsriTimeDelta.

String

Пример кода

Пример EsriTimeDelta 1

Следующий скрипт получает доступ к свойству временного интервала слоя с поддержкой времени в документе карты. Временной шаг – это объект EsriTimeDelta. Затем скрипт печатает свойства EsriTimeDelta.

import arcpy
mxd = arcpy.mapping.MapDocument('C:/Project/Temperature.mxd')
df = arcpy.mapping.ListDataFrames(mxd, 'USA')[0]
lyr = arcpy.mapping.ListLayers(mxd,'temperature', df)[0]
tsi = lyr.time.timeStepInterval
print "Time Step Interval:", tsi
print "EsriTimeDelta interval:", tsi.interval
print "EsriTimeDelta units:", tsi.units
Пример EsriTimeDelta 2

Следующий скрипт использует объект EsriTimeDelta для прохода по двенадцати месяцев начиная с текущей даты.

import arcpy, datetime

time = datetime.datetime.now()

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

В следующем скрипте показано, как EsriTimeDelta обрабатывает високосные года. Скрипт добавляет месяц к 31 января 2008 г. и возвращает 29 февраля 2008 г.

import arcpy, datetime

time = datetime.datetime(2008, 1, 31)

for delta in range(0, 12):
    next_date = time + arcpy.time.EsriTimeDelta(delta, "months")
    print next_date
    delta = delta + 1
9/11/2013