get_rfc1123_time

in src/zadf/zcl_adf_service_oms_la.clas.abap [0:0]


  METHOD get_rfc1123_time.

    CONSTANTS : lc_com TYPE c VALUE ',',
                lc_gmt TYPE char3 VALUE 'GMT',
                lc_col TYPE c VALUE ':'.

    DATA : lv_day_name TYPE char4,
           lv_date     TYPE char12,
           lv_day      TYPE sc_day_txt,
           lv_time     TYPE string,
           lv_tstmp    TYPE timestamp,
           lv_tstmp_s  TYPE string,
           lv_datum    TYPE datum.

    FIELD-SYMBOLS <fs_date> TYPE any.


** Get current GMT timestamp
    GET TIME STAMP FIELD lv_tstmp.
    lv_tstmp_s = lv_tstmp.
    lv_datum = lv_tstmp_s(8).

**  Convert date format
    CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
      EXPORTING
        input  = lv_datum
      IMPORTING
        output = lv_date.

**  get the day of the month
    CALL FUNCTION 'DATE_COMPUTE_DAY_ENHANCED'
      EXPORTING
        date    = lv_datum
      IMPORTING
        weekday = lv_day.

** get time separated by :
    CONCATENATE lv_tstmp_s+8(2)  lv_tstmp_s+10(2)  lv_tstmp_s+12(2)  INTO lv_time SEPARATED BY lc_col.

** Capitalise the first letter of month and day
    ASSIGN lv_day(1) TO <fs_date>.
    IF <fs_date> IS ASSIGNED.
      TRANSLATE <fs_date> TO UPPER CASE.
      UNASSIGN <fs_date>.
    ENDIF.

    ASSIGN lv_date(1) TO <fs_date>.
    IF <fs_date> IS ASSIGNED.
      TRANSLATE <fs_date> TO UPPER CASE.
      UNASSIGN <fs_date>.
    ENDIF.

    ASSIGN lv_date+1(2) TO <fs_date>.
    IF <fs_date> IS ASSIGNED.
      TRANSLATE <fs_date> TO LOWER CASE.
      UNASSIGN <fs_date>.
    ENDIF.

    ASSIGN lv_day+1(2) TO <fs_date>.
    IF <fs_date> IS ASSIGNED.
      TRANSLATE <fs_date> TO LOWER CASE.
      UNASSIGN <fs_date>.
    ENDIF.

** Add ',' to day
    CONCATENATE lv_day(3) lc_com INTO lv_day_name.
    CONDENSE lv_day_name.

** make timestamp in RFC1123
    CONCATENATE lv_day_name
                lv_date+4(2)
                lv_date(3)
                lv_date+7(4)
                lv_time
                lc_gmt
             INTO ev_timestamp SEPARATED BY space.