美文网首页SAP ABAP 学习笔记
SAP ABAP 日期和时间

SAP ABAP 日期和时间

作者: 鼠小倩 | 来源:发表于2022-06-17 23:38 被阅读0次

    01-日期+时间
    02-时间戳

    01-日期+时间

    ABAP毫不保留地引用了公历日历,在世界大部分地区有效。
    我们可以将输出转换为特定国家/地区的日历。 日期是指定到关于日历的精确日,周或月的时间。
    ABAP提供内置类型来处理日期:
    • D data type
    • T data type

    以下是基本格式:

    DATA: date TYPE D, 
          time TYPE T. 
    DATA: year TYPE I, 
          month TYPE I, 
          day TYPE I, 
          hour TYPE I, 
          minute TYPE I, 
          second TYPE I.
    

    这两种类型都是分别具有YYYYMMDD和HHMMSS格式的固定长度字符类型.

    当前日期和时间

    检索当前系统日期
    **检索当前系统日期和时间
    REPORT ZHY01_HY101_20220617_01 NO STANDARD PAGE HEADING.
    DATA:date TYPE D.
         date = SY-DATUM.
         WRITE:/'Present Date is:',date DD/MM/YYYY.
         date = date + 06.
         WRITE:/'Date after 6 Day is:',date DD/MM/YYYY.
    
    结果展示

    说明:
    变量date分配有当前系统日期SY-DATUM的值。
    接下来,我们将日期值增加6 .对于ABAP中的日期计算,这意味着我们将日期对
    象的日期组件增加6天。
    ABAP运行时环境可以在每月结束时翻转日期值。

    检索当前系统时间

    时间计算与日期计算类似。
    以下代码使用基本时间算法将当前系统时间增加75秒。

    **时间计算(使用基本时间算法将当前系统时间增加7 5秒)
    REPORT ZHY01_HY101_20220617_01 NO STANDARD PAGE HEADING.
    DATA:time_1 TYPE T.
         time_1 = SY-UZEIT.
         WRITE /(60) time_1 USING EDIT MASK 'Now The Time is: __:__:__'.
         time_1 = time_1 + 75.
         WRITE /(60) time_1 USING EDIT MASK 'A Minute and a Quarter from Now,it is: __:__:__'.
    
    结果展示

    说明:
    变量 time_1 分配有当前系统时间SY-UZEIT的值。
    输出格式规范:USING EDIT MASK <m>表示格式模板< m>的规范。 使用无编辑掩码:这指定禁用在ABAP字典中指定的格式模板。

    02-时间戳

    (通俗理解:时间戳也就是用于存储日期和时间的一个变量)
    除了“ data type D;data type T ”这两种内置类型,其他两种类型TIMESTAMP(短时间戳,类型为DEC(15,0))和 TIMESTAMPL(长时间戳,类型为DEC(21,7)) 在许多标准应用程序表中用于存储UTC(UTC, Universal Time Coordinated,通用协调时间戳)格式的时间戳。

    附加数字“mmmuuun"表示秒的分数。

    使用 GET TIME STAMP 检索当前系统时间并将其存储在时间戳变量中,如以下代码所示。

    **时间戳(检索当前系统时间并将其存储在时间戳变量中)
    REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
    DATA: stamp_1 TYPE TIMESTAMP,
          stamp_2 TYPE TIMESTAMPL.
    GET TIME STAMP FIELD stamp_1.
    WRITE: / 'the short time stamp is: ',stamp_1 TIME ZONE SY-ZONLO.
    GET TIME STAMP FIELD stamp_2.
    WRITE: / 'the long time stamp is: ',stamp_2 TIME ZONE SY-ZONLO.
    

    说明:
    GET TIME STAMP语句根据所使用的时间戳数据对象的类型以长指针短指针格式存储时间戳。 时间戳值使用UTC标准进行编码。
    TIME ZONE 添加WRITE语句显示时间戳。 此添加根据指定的时区的规则格式化时间戳的输出。
    系统字段SY-ZONLO用于显示在用户首选项中配置的本地时区。

    系统预留(系统结构为SYST,程序默认结构为SY)的时间变量:
    应用服务器日期:SY-DATUM
    应用服务器时间:SY-UZEIT
    应用服务器时区(INT4):SY-TZONE;
    夏令时标识:SY-DAYST
    用户本地日期:SY-DATLO
    用户本地时间:SY-TIMLO
    用户本地时区(CHAR6):SY-ZONLO
    更多的:事务码SE37 模糊匹配TIMESTAMP可以查到大量的相关函数;类CL_ABAP_TSTMP也有一些实用方法
    ————————————————
    版权声明:本文为CSDN博主「ivanyit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_38223529/article/details/115717272

    相关文章

      网友评论

        本文标题:SAP ABAP 日期和时间

        本文链接:https://www.haomeiwen.com/subject/rzshvrtx.html