Use system time zone to convert sy-datum and sy-uzeit to UTC

This commit is contained in:
fvalves 2024-09-04 10:33:22 +02:00 committed by GitHub
parent 4ffb9f6d9e
commit 49b18e5e65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -37,7 +37,10 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
RETURNING
VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules,
apply_clear_logic FOR TESTING,
apply_fill_logic FOR TESTING.
apply_fill_logic FOR TESTING,
get_utc_timestamp
RETURNING
VALUE(rv_timestamp) TYPE timestamp.
ENDCLASS.
@ -85,9 +88,7 @@ CLASS ltcl_field_rules IMPLEMENTATION.
METHOD fill3.
DATA lv_timestamp TYPE timestamp.
CONVERT DATE sy-datum TIME sy-uzeit
INTO TIME STAMP lv_timestamp
TIME ZONE sy-zonlo.
lv_timestamp = get_utc_timestamp( ).
fill_value(
iv_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp
iv_len = 10
@ -240,9 +241,7 @@ CLASS ltcl_field_rules IMPLEMENTATION.
act = ls_act-time(4)
exp = sy-uzeit(4) ). " avoid comparing seconds
CONVERT DATE sy-datum TIME sy-uzeit
INTO TIME STAMP lv_timestamp
TIME ZONE sy-zonlo.
lv_timestamp = get_utc_timestamp( ).
lv_ts = ls_act-ts.
lv_ts = lv_ts(12).
cl_abap_unit_assert=>assert_equals(
@ -271,4 +270,20 @@ CLASS ltcl_field_rules IMPLEMENTATION.
ENDMETHOD.
METHOD get_utc_timestamp.
DATA lv_syst_timezone TYPE timezone.
CALL FUNCTION 'GET_SYSTEM_TIMEZONE'
IMPORTING
timezone = lv_syst_timezone
EXCEPTIONS
customizing_missing = 1
OTHERS = 2.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( 'Could not get system timezone' ).
ENDIF.
CONVERT DATE sy-datum TIME sy-uzeit
INTO TIME STAMP rv_timestamp
TIME ZONE lv_syst_timezone.
ENDMETHOD.
ENDCLASS.