处理日期和时间导入符号

发布时间 2023-08-29 10:07:21作者: 蛀牙首领
日期入参:2023.01.01输出:20230101
时间入参:10:01:01 输出:100101
直接上代码:
FUNCTION ZRFC_FI_002.
*"----------------------------------------------------------------------
*"*"區域介面:
*"  IMPORTING
*"     VALUE(P_DATUM) TYPE  CHAR50 OPTIONAL
*"     VALUE(P_UZEIT) TYPE  CHAR50 OPTIONAL
*"  EXPORTING
*"     VALUE(OP_DATUM) TYPE  SY-DATUM
*"     VALUE(OP_UZEIT) TYPE  SY-UZEIT
*"----------------------------------------------------------------------
  DATA: LV_STR2 TYPE CHAR1.
  DATA: LV_STR1 TYPE STRING,
        LV_STR3 TYPE STRING,
        LV_STR4 TYPE STRING,
        LV_LEN TYPE I.
  DATA: LT_STR  LIKE TABLE OF LV_STR1.

  IF P_DATUM IS NOT INITIAL.
    IF '/.-\' CA P_DATUM.
      LV_STR2 = P_DATUM+4(1).
      SPLIT P_DATUM AT LV_STR2 INTO TABLE LT_STR.
      LOOP AT LT_STR INTO LV_STR1.
        LV_LEN = STRLEN( LV_STR1 ).
        IF LV_LEN EQ 1.
          CONCATENATE LV_STR3 '0' LV_STR1 INTO LV_STR3.
        ELSE.
          CONCATENATE LV_STR3 LV_STR1 INTO LV_STR3.
        ENDIF.
        CLEAR: LV_STR1.
      ENDLOOP.
      OP_DATUM = LV_STR3.
    ELSE.
      OP_DATUM = P_DATUM.
    ENDIF.
  ENDIF.

  IF '::' CA P_UZEIT.
    CLEAR: LT_STR[].
    LV_STR2 = P_UZEIT+2(1).
    IF '::' CA LV_STR2.
      SPLIT P_UZEIT AT LV_STR2 INTO TABLE LT_STR.
    ELSE.
      LV_STR2 = P_UZEIT+1(1).
      SPLIT P_UZEIT AT LV_STR2 INTO TABLE LT_STR.
    ENDIF.

    LOOP AT LT_STR INTO LV_STR1.
      LV_LEN = STRLEN( LV_STR1 ).
      IF LV_LEN EQ 1.
        CONCATENATE LV_STR4 '0' LV_STR1 INTO LV_STR4.
      ELSE.
        CONCATENATE LV_STR4 LV_STR1 INTO LV_STR4.
      ENDIF.
      CLEAR: LV_STR1.
    ENDLOOP.
    OP_UZEIT = LV_STR4.
  ELSE.
    OP_UZEIT = P_UZEIT.
  ENDIF.

ENDFUNCTION.
View Code