FAQ > 金融建模 > 建模问题 > 日期相关

Q:天软的日期是什么格式的?    

  • A:天软日期时间的存储:
    天软的日期是一个实数,从1899-12-31为第1天开始算起,每天加1,这个跟Excel内部存储的日期是一样的。如果是时间的话,是以小数点的形式存储的。比如0.5就是中午12点,那么2015-11-01 12:00:00在内部存储是42309.5。

    天软日期时间的表达:
    TSL支持20101231.0931T表达2012年12月31日9点31分。
    或通过strToDate('2020-01-01')等方式进行指定。
    更多转换为日期时间的函数可以参考下列范例。

    天软日期时间的展示:
    如果日期数据提取出来,在结果页面中看到的是类似于42309.5这样的数据,可以把鼠标放在日期这列上面,然后 Ctrl+D ,那么这列的值就会显示为字符串的日期。要注意的是,显示的时间点,跟函数返回时带的小数点有关系,所以,如果想要把时间更准确的显示,在return数据之前,对日期这列进行日期格式的转化,用函数datetostr或datetimetostr。

    天软日期时间的转换函数:
    生成或其它格式转成日期时间:
    函数定义函数功能转换关系
    EncodeDate(Y,M,D)根据指定的年月日生成一个日期生成日期
    EncodeTime(H,M,S,MS)根据指定的时、分、秒、毫秒生成一个时间生成时间
    EncodeDateTime(Y,M,D,H,N,S,Z)根据指定的年月日时分秒毫秒生成一个日期时间生成日期时间
    strToDate(S)将一个"yyyy-mm-dd"格式的字符串转成一个日期"yyyy-mm-dd"->Tdate
    strToTime(S)将一个"HH:NN:SS"格式的字符串转成一个时间"hh:nn:ss"->Ttime
    strToDateTime(S)将一个" yyyy-mm-dd hh:nn:ss"格式的字符串转成一个日期时间"yyyy-mm-dd hh:nn:ss"->TDatetime
    strToDateTIme2(S)将一个" yyyy-mm-dd hh:nn:ss:zzz"格式的字符串转成一个日期时间功能同上,并支持毫秒的转换
    IntToDate(IntD)将一个整型(yyyymmdd,如20220301)转成日期类型yyyymmdd->Tdate


    日期时间类型转成其它格式:
    函数定义函数功能转换关系
    DateToStr(Endt)将天软日期类型转成"yyyy-mm-dd"格式的字符串Tdate->"yyyy-mm-dd"
    DateTimeToStr(Endtime)将天软日期时间转成"yyyy-mm-dd hh:nn:ss"格式的字符串Tdatetime->"yyyy-mm-dd hh:mm:ss"
    FormatDateTime(Fstr,Endtime)将天软日期时间类型按指定格式串转换成字符串Tdatetime->任意自定义的字符串格式
    具体用法可参考:FAQ:FormatDateTime
    DateToInt(Endt)将天软日期类型转成整型(yyyymmdd),如20220301Tdate->yyyymmdd


    以上只列出常用的基础转换函数,更多可参考:FAQ:日期时间

    转换效果的具体展示:
    1、datetostr(day):将日期格式转化为字符串格式。

    return datetostr(42309); //返回2015-11-01
    return datetostr(today()); //把今天的日期转化为字符串日期形式

    注:不管day带了时间点没有,都只返回字符串的日期(不带时间点)。

    2、datetimetostr(day):将日期时间格式转化为字符串格式,与datetostr不同的是带了时间点。

    return datetimetostr(42309.5);
    return datetimetostr(now()); //返回 2015-11-06 16:44:59 ,返回的是当时的日期和时间
    return datetimetostr(today()); //返回2015-11-06 ,today()中,是没有带时间的,要注意

    3、timetostr(day):将时间转化为字符串格式。day可以是带日期的日期时间数据,但将只返回day的时间部分的字符串格式。

    return timetostr(42309.5); //返回 12:00:00
    return timetostr(now()); //返回 16:48:16

    4、strtodate(s):将字符串格式的日期转化为日期格式。

    return strtodate('2015-11-01'); //返回42309

    5、strtodatetime(s):将字符串格式的日期时间转化为日期格式。

    return strtodatetime('2015-11-01 12:00:00'); //返回42309.5

    6、strtotime(s):将字符串格式的时间转化为时间格式

    return strtotime('12:00:00'); //返回 0.5

    7、datetoint(day): 将日期转化为整型日期

    return datetoint(42309); //返回 20151101

    8、inttodate(intday):将整型日期转化为日期格式

    return inttodate(20151101); //返回 42309

    9、FormatDateTime(Fstr,Endtime):将日期时间转化为"yyyy/mm/dd hh:nn:ss"格式

    return FormatDateTime("yyyy/mm/dd hh:nn:ss",20230329.1630T);//返回字符串2023-03-29 16:30:00

    10、FormatDateTime(Fstr,Endtime):将日期时间转化为带毫秒的字符串

    return FormatDateTime("yyyy-mm-dd hh:nn:ss:zzz",20230329.163525300T);//返回字符串2023-03-29 16:35:25:300

    注:将天软日期时间转换成更多其它字符串格式的功能,都可通过FormatDateTime实现。用法可参考:FAQ:FormatDateTime