日期输出:
DATA: DATE_1 TYPE D.
DATE_1 = SY-DATUM.
WRITE: / 'Present Date is:', DATE_1 DD/MM/YYYY.
WRITE: / 'Present Date is:', DATE_1 YYMMDD.
DATE_1 = DATE_1 + 06.
WRITE: / 'Date after 6 Days is:', DATE_1 DD/MM/YYYY.
结果:
一共有这些日期的输出方式:
时间输出
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: __:__:__'.
结果:
WRITE USING EDIT MASK 使用ABAP/4 词典中指定的格式模板的激活。
简单例子:
DATA TIME TYPE T VALUE '154633'.
WRITE: TIME,
/(8) TIME USING EDIT MASK '__:__:__'. "这里直接使用的是格式模板,还可以使用词典中已有的转换规则函数
结果:
复杂示例:
DATA: TIME TYPE S_FLTIME,
MINUTES TYPE I,
MSK TYPE STRING,
OUTPUT(6) TYPE C.
DESCRIBE FIELD TIME EDIT MASK MSK.
WRITE: / MSK.
MINUTES = 333.
WRITE: / MINUTES USING EDIT MASK MSK. "将分钟转换小时为单位显示
CALL FUNCTION 'CONVERSION_EXIT_SDURA_OUTPUT' "使用转换规则相应的转换函数结果也是一样
EXPORTING
INPUT = 333
IMPORTING
OUTPUT = OUTPUT.
WRITE: / OUTPUT.
结果:
复杂示例解析:
因为数据元素(data element)S_FLTIME的domain域S_DURA在词典中关联一个名叫“SDURA”的转换规则(请看后面两个截图),所以msk返回"==SDURA",然后WRITE语句使用该规则将seconds转换分钟的格式进行显示。
其实规则是由转换函数来实现的,可以通过转换规则找到对应的转换函数:
使用时间戳
您可以使用 GET TIME STAMP 检索当前系统时间并将其存储在时间戳变量中,如以下代码所示。 GET TIME STAMP语句根据所使用的时间戳数据对象的类型以长指针或短指针格式存储时间戳。 时间戳值使用UTC标准进行编码。
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.
结果:
在上面的示例中,我们使用TIME ZONE添加WRITE语句显示时间戳。 此添加根据指定的时区的规则格式化时间戳的输出。 系统字段SY-ZONLO用于显示在用户首选项中配置的本地时区。