摘要
EsriTimeDelta 类表示持续时间,即两个日期或时间之差。
讨论
EsriTimeDelta 类为核心 Python datetime.timedelta 的备选选项,针对核心 Python 时间增量对象无法处理的时间间隔使用内部 Esri 时间单位(例如月、周等)。
LayerTime 和 DataFrameTime 类中的 timeStepInterval 属性返回EsriTimeDelta 对象。
语法
EsriTimeDelta (interval, units)
参数 | 说明 | 数据类型 |
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 |
属性
属性 | 说明 | 数据类型 |
interval (只读) | The interval of the EsriTimeDelta. | Double |
units (只读) | The units of the 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 处理闰年的方式。该脚本将在 2008 年 1 月 31 日之后添加一个月,然后返回 2008 年 2 月 29 日。
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