temporalAdd
语法
temporalAdd(obj, duration, [unit])
别名:datetimeAdd
详情
为时间变量加上一个指定的值。
参数
obj 是时间类型的标量或向量。
duration 是一个整数或 DURATION 类型数据。
unit 是一个字符串标量。
-
duration 是整数时,unit 表示:
-
duration 的单位,取值可以是:"ns"(nanosecond), "us"(microsecond), "ms"(millisecond), "s"(second), "m"(minute), "H"(hour), "d"(day), "w"(week), "M"(month), "y"(year), “B”(business day)
-
交易日历的标识,例如:国外交易所的 ISO Code、国内交易所简称或自定义交易日历名称。对应的文件必须保存在 marketHolidayDir 中。
-
-
duration 是 DURATION 类型数据时,unit 无需设置。
注: 时间单位为 year 或 month 时,计算结果与 mysql 保持一致。Pandas
提供了一个时间偏移对象(Date offsets)来完成时间偏移工作,当 DateOffset 参数取 months 或 years 时,与
temporalAdd
单位为 M 或 y 的计算结果也一致。例子
temporalAdd(2017.01.16,1,"d");
# output
2017.01.17
temporalAdd(2017.01.16,1,"w");
# output
2017.01.23
temporalAdd(2016.12M,2,"M");
# output
2017.02M
temporalAdd(2012.07.31T13:30:10.008,-1,'M');
# output
2012.06.30T13:30:10.008
temporalAdd(2012.07.31T13:30:10.008,1,'y');
# output
2013.07.31T13:30:10.008
temporalAdd(13:30:10.008007006,100,"ns");
# output
13:30:10.008007106
x=[12:23:34, 23:34:45];
temporalAdd(x, 10m);
# output
[12:33:34,23:44:45]
为 2021.08.06 增加 4 个工作日。
temporalAdd(2021.08.06, 4B)
# output
2021.08.12
按照 CFFEX 的交易日历,为 date 增加 2 个交易日。
date=[2023.01.01, 2023.01.02, 2023.01.03, 2023.01.04]
temporalAdd(date,2,`CFFEX)
# output
[2023.01.04,2023.01.04,2023.01.05,2023.01.06]
temporalAdd(datetime(2020.08.31), -2M)
# output
2020.06.30T00:00:00
# pandas中 DateOffset 传入参数 months,计算结果一致
pd1 = pd.Timestamp("2020.08.31")
print(pd1 -pd.offsets.DateOffset(months=2))
# output
2020-06-30 00:00:00
temporalAdd(datetime(2020.02.29), -1y)
# output
2019.02.28T00:00:00
temporalAdd(datetime(2020.02.29), -4y)
# output
2016.02.29T00:00:00
// pandas 中 offset 设为1年
pd1 = pd.Timestamp("2020.02.29")
print(pd1 - pd.offsets.DateOffset(years=1))
# output
2019-02-28 00:00:00
// pandas 中 offset 设为4年
pd2 = pd.Timestamp("2020.02.29")
print(pd2 - pd.offsets.DateOffset(years=4))
# output
2016-02-29 00:00:00