EsriTimeDelta (arcpy.time)
Resumen
La clase EsriTimeDelta representa una duración, la diferencia entre dos fechas u horas.
Debate
La clase EsriTimeDelta es una alternativa a datetime.timedelta de núcleo de Python que utiliza unidades de tiempo internas de Esri para intervalos que no pueden ser controlados por el objeto timedelta del núcleo de Python (tales como meses, semanas, etc.).
La propiedad timeStepInterval de las clases LayerTime y DataFrameTime devuelve objetos EsriTimeDelta.
Antes de la versión 10.1, la propiedad timeStepInterval de la clase DataFrameTime devolvía objetos datetime.timedelta del núcleo de Python.
Sintaxis
Parámetro | Explicación | Tipo de datos |
interval |
The interval of the EsriTimeDelta. | Double |
units | The units of the EsriTimeDelta. Valid units are milliseconds, seconds, minutes, hours, days, weeks, months, years, decades, and centuries. | String |
Propiedades
Propiedad | Explicación | Tipo de datos |
interval (Sólo lectura) |
The interval of the EsriTimeDelta. | Double |
units (Sólo lectura) | The units of the EsriTimeDelta. | String |
Ejemplo de código
The following script accesses the time-step interval property of a time-enabled layer in a map document. The time-step interval is an EsriTimeDelta object. The script then prints EsriTimeDelta properties.
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
The following script uses the EsriTimeDelta object to iterate through twelve months starting from the current date.
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
The following script shows how the EsriTimeDelta handles leap years. The script adds a month to January 31, 2008 and returns February 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