Convert edm datetime etag to abap timestamp

Definition

  class-methods EDM_DATETIME_ETAG_TO_TSTMP
    importing
      !IV_ETAG type STRING
    returning
      value(RV_TIMESTAMP) type TIMESTAMP .

Implementation

  METHOD edm_datetime_etag_to_tstmp.

    DATA: lv_edm_datetime TYPE string,
          lv_date         TYPE dats,
          lv_time         TYPE tims,
          lv_year         TYPE n LENGTH 4,
          lv_month        TYPE n LENGTH 2,
          lv_day          TYPE n LENGTH 2,
          lv_hour         TYPE n LENGTH 2,
          lv_minute       TYPE n LENGTH 2,
          lv_second       TYPE n LENGTH 2.
    lv_edm_datetime = cl_http_utility=>unescape_url( iv_etag ).
    lv_edm_datetime = substring_after( val = lv_edm_datetime sub = |W/"datetime'| ).
    lv_edm_datetime = substring_before( val = lv_edm_datetime sub = |'"| ).

    " Extract year, month, and day components
    lv_year  = lv_edm_datetime+0(4).
    lv_month = lv_edm_datetime+5(2).
    lv_day   = lv_edm_datetime+8(2).

    " Combine into an ABAP date
    lv_date = lv_year && lv_month && lv_day.

    " Extract hour, minute, and second components (if needed for timestamp)
    lv_hour   = lv_edm_datetime+11(2).
    lv_minute = lv_edm_datetime+14(2).
    lv_second = lv_edm_datetime+17(2).

    " Combine into an ABAP time
    lv_time = lv_hour && lv_minute && lv_second.

    rv_timestamp = lv_date && lv_time.

  ENDMETHOD.

Leave a Reply

Your email address will not be published. Required fields are marked *