• ABAP中时间戳的处理


    UTC(UTC, Universal Time Coordinated,通用协调时)时间戳,分为长时间戳和段时间戳,其中长时间戳餐开始的系统的数据元素TIMESTAMPL,类型为DEC(21,7);而段时间戳参考的系统数据元素为TIMESTAMP,类型为DEC(15,0)。下文中如果没有特指,一般都指的短时间戳。
     
    1、获取当前时间戳
    GET TIME STAMP FIELD timestamp.
    获取当前系统的时间戳(这里的时间戳可以是长类型,也可以是短类型)
    示例:
    GET TIIME STAMP FIELD lv_timestamp.
     
    2、使用CONVERT DATE生成指定时间的时间戳
    CONVERT DATE date
                  [TIME time [DAYLIGHT SAVING TIME dst] ]
            INTO TIME STAMP time_stamp TIME ZONE tz.
    根据指定的日期、时间(可选是否为夏令时)和时区生成时间戳,其中[]圈起来的参数为可选参数,参数解释如下:
    date:指定的日期(DATS类型)
    time:指定的时间(TIMS类型)
    dst:夏令时标志(CHAR1类型)
    time_stamp:(时间戳 DEC(15,0)类型)
    tz:时区(CHAR06类型)
     
    系统预留(系统结构为SYST,程序默认结构为SY)的时间变量有:
      • SY-DATUM:应用服务器日期;
      • SY-UZEIT:应用服务器时间;
      • SY-TZONE:应用服务器时区(INT4);
      • SY-DAYST:夏令时;
      • SY-DATLO:用户本地日期;
      • SY-TIMLO:用户本地时间;
      • SY-ZONLO:用户本地时区(CHAR6)。
    【注意】在实际测试过程中,即使手动调整本地电脑的时间为费正确的时间,发现系统用户本地时间和服务器时间对应的系统变量的值是一样的(正确的时间值),并不是真正的本地时间,可能是因为时区相同,没有测出差别。
    调用示范:
    CONVERT DATE SY-DATLO TIME SY-TIMLO 
    INTO TIME STAMP DATA(LV_TIMESTAMP) TIME ZONE SY-ZONLO.
     
    3、使用CONVERT TIME  STAMP获取时间戳对应的日期和时间信息
    CONVERT TIME STAMP time_stamp
      TIME ZONE tz
                      INTO [DATE date]
                        [TIME time] [DAYLIGHT SAVING TIME dst].
    根据制定的时间戳和时区,获取对应的日期、时间、夏令时信息,其中[]圈起来的参数为可选参数,参数解释如下:
    time_stamp:(时间戳 DEC(15,0)类型)
    tz:时区(CHAR06类型)
    date:指定的日期(DATS类型)
    time:指定的时间(TIMS类型)
    dst:夏令时标志(CHAR1类型)
    调用示范:
    DATA: LV_TIMESTAMP TYPE TIMESTAMP VALUE '20190109112320'.
    CONVERT TIME STAMP LV_TIMESTAMP TIME ZONE SY-ZONLO
    INTO DATE DATA(LV_DATE)
       TIME DATA(LV_TIME).
     
    4、使用系统函数来进行时间戳来与日期和时间进行转换
    系统中有大量的根据日期、时间、时区与时间戳进行互转的函数,只需要在SE37下模糊匹配“*TIMESTAMP*”就可以查到大量的有用函数,以下为常见的几个函数:
    • 根据制定的日期、时间、时区生成时间戳:IB_CONVERT_INTO_TIMESTAMP
    • 根据制定的时间戳和时区转化成日期、时间:IB_CONVERT_FROM_TIMESTAMP
    • 把指定区域的时间戳转化成日期和时间:LTRM_TIMESTAMP_CONVERT_FROM
    • 把指定区域的日期和时间转化成时间戳:LTRM_TIMESTAMP_CONVERT_INTO
    • 把指定的日期和时间转化成时间戳(默认本地时区):ABI_TIMESTAMP_CONVERT_FROM
    • 把指定的时间戳转化成日期和时间(默认本地时区):ABI_TIMESTAMP_CONVERT_INTO
    • 获取指定的远程系统的时间戳:RSWR_TIMESTAMP_GET
    实际上,通过查看这些函数的代码可以发现,其实本质最核心的代码还是调用CONVERT语句,因此只需要掌握CONVRT语句即可快速互转时间戳与日期时间信息。
    调用示范:
    DATA: LV_TIMESTAMP TYPE TIMESTAMP.
    CALL FUNCTION 'IB_CONVERT_INTO_TIMESTAMP'
          EXPORTING
             I_DATLO     = SY-DATLO
             I_TIMLO     = SY-TIMLO
             I_TZONE     = SY-ZONLO
           IMPORTING
             E_TIMESTAMP = LV_TIMESTAMP.
  • 相关阅读:
    .net core web
    ASP.NET HttpContext类
    页面周期与事件
    (49) C# npoi 读写office
    vs2017 vs2019秘钥
    HDU 2767 Proving Equivalences(强连通 Tarjan+缩点)
    【bzoj1013】[JSOI2008]球形空间产生器sphere
    P1979 [NOIP]华容道
    hdu4352 XHXJ's LIS(数位DP + LIS + 状态压缩)
    hdu3709 Balanced Number 树形dp
  • 原文地址:https://www.cnblogs.com/zohoo/p/11593487.html
Copyright © 2020-2023  润新知