temporalAdd

语法

temporalAdd(obj, duration, [unit])

别名:datetimeAdd

参数

obj 是时间类型的标量或向量。

duration 是一个整数或 DURATION 类型数据。

New in version 1.30.13: 参数 unit

New in version 1.30.21: 用户自定义交易日历

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");
2017.01.17

$ temporalAdd(2017.01.16,1,"w");
2017.01.23

$ temporalAdd(2016.12M,2,"M");
2017.02M

$ temporalAdd(2012.07.31T13:30:10.008,-1,'M');
2012.06.30T13:30:10.008

$ temporalAdd(2012.07.31T13:30:10.008,1,'y');
2013.07.31T13:30:10.008

$ temporalAdd(13:30:10.008007006,100,"ns");
13:30:10.008007106

$ x=[12:23:34, 23:34:45];
$ temporalAdd(x, 10m);
[12:33:34,23:44:45]

为 2021.08.06 增加4个工作日。

$ temporalAdd(2021.08.06, 4B)
2021.08.12

按照 CFFEX 的交易日历,为 date 增加2个交易日。

$ date=[2023.01.01, 2023.01.02, 2023.01.03, 2023.01.04]
$ temporalAdd(date,2,`CFFEX)
[2023.01.04,2023.01.04,2023.01.05,2023.01.06]
$ temporalAdd(datetime(2020.08.31), -2M)
2020.06.30T00:00:00

//pandas中 DateOffset 传入参数 months,计算结果一致
$ pd1 = pd.Timestamp("2020.08.31")
$ print(pd1 -pd.offsets.DateOffset(months=2))
2020-06-30 00:00:00

$ temporalAdd(datetime(2020.02.29), -1y)
2019.02.28T00:00:00
$ temporalAdd(datetime(2020.02.29), -4y)
2016.02.29T00:00:00

//pandas 中 offset 设为1年
$ pd1 = pd.Timestamp("2020.02.29")
$ print(pd1 - pd.offsets.DateOffset(years=1))
2019-02-28 00:00:00

//pandas 中 offset 设为4年
$ pd2 = pd.Timestamp("2020.02.29")
$ print(pd2 - pd.offsets.DateOffset(years=4))
2016-02-29 00:00:00