FM 将时间从 24 小时格式转换为 12 小时格式?
FM to convert time from 24hr to 12hr format?
我必须根据用户设置(包括时区(CET/IST 等)和时间格式( 24 小时/12 小时)。
我可以找到 CONVERT TIME STAMP
只接受 TIME ZONE
作为参数并进行转换的语句:
DATA: lv_timestampl TYPE timestampl VALUE '20200219095959.0000000',
lv_date TYPE d,
lv_time TYPE t.
CONVERT TIME STAMP lv_timestampl TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time.
我的objective是根据TimeZone
和TimeFormat
一起转换这个lv_timestampl
PS:我可以在 CONVERT TIME STAMP
语句后对 lv_time
进行 -12
操作并附加 PM/AM
但我正在寻找一种标准方法这样做。
FM HRVE_CONVERT_TIME 可用于两种方式的转换(将 12 小时转换为 24 小时和将 24 小时转换为 12 小时)。
您可以将结果与您已经找到的 FM 结合起来。
好的,如果你找不到string templates help。
,让我成为你今天的生活帮手
将时间戳转换为 UTC 的模板:
DATA(ld_tims_utc) = |{ lv_timestampl TIMESTAMP = ENVIRONMENT }|.
returns
19.02.2020 09:59:59,0000000
将时间戳转换为明确指定的时区的模板:
DATA(ld_tims_zone) = |{ lv_timestampl TIMESTAMP = ENVIRONMENT TIMEZONE = 'CET' }|.
returns
19.02.2020 10:59:59,0000000
从时间戳获取时间和日期(不是 timestampl
,因此需要转换):
cl_abap_tstmp=>systemtstmp_utc2syst( EXPORTING
utc_tstmp = CONV timestamp( lv_timestampl )
IMPORTING
syst_date = lv_date
syst_time = lv_time ).
12h格式输出:
SET COUNTRY 'US'.
DATA(time_us) = |{ lv_time TIME = ENVIRONMENT }|. "gives 01:55:43 PM
24 小时制输出:
SET COUNTRY 'DE'.
DATA(time_de) = |{ lv_time TIME = ENVIRONMENT }|. "gives 13:55:43
对于 AM/PM 时间格式的输出,需要在 table USR01
aka [=21] 的 TIMEFM 字段中进行维护=] 或 table t005x
又名国家/地区设置(tcode OY01)。
我必须根据用户设置(包括时区(CET/IST 等)和时间格式( 24 小时/12 小时)。
我可以找到 CONVERT TIME STAMP
只接受 TIME ZONE
作为参数并进行转换的语句:
DATA: lv_timestampl TYPE timestampl VALUE '20200219095959.0000000',
lv_date TYPE d,
lv_time TYPE t.
CONVERT TIME STAMP lv_timestampl TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time.
我的objective是根据TimeZone
和TimeFormat
一起转换这个lv_timestampl
PS:我可以在 CONVERT TIME STAMP
语句后对 lv_time
进行 -12
操作并附加 PM/AM
但我正在寻找一种标准方法这样做。
FM HRVE_CONVERT_TIME 可用于两种方式的转换(将 12 小时转换为 24 小时和将 24 小时转换为 12 小时)。
您可以将结果与您已经找到的 FM 结合起来。
好的,如果你找不到string templates help。
,让我成为你今天的生活帮手将时间戳转换为 UTC 的模板:
DATA(ld_tims_utc) = |{ lv_timestampl TIMESTAMP = ENVIRONMENT }|.
returns
19.02.2020 09:59:59,0000000
将时间戳转换为明确指定的时区的模板:
DATA(ld_tims_zone) = |{ lv_timestampl TIMESTAMP = ENVIRONMENT TIMEZONE = 'CET' }|.
returns
19.02.2020 10:59:59,0000000
从时间戳获取时间和日期(不是 timestampl
,因此需要转换):
cl_abap_tstmp=>systemtstmp_utc2syst( EXPORTING
utc_tstmp = CONV timestamp( lv_timestampl )
IMPORTING
syst_date = lv_date
syst_time = lv_time ).
12h格式输出:
SET COUNTRY 'US'.
DATA(time_us) = |{ lv_time TIME = ENVIRONMENT }|. "gives 01:55:43 PM
24 小时制输出:
SET COUNTRY 'DE'.
DATA(time_de) = |{ lv_time TIME = ENVIRONMENT }|. "gives 13:55:43
对于 AM/PM 时间格式的输出,需要在 table USR01
aka [=21] 的 TIMEFM 字段中进行维护=] 或 table t005x
又名国家/地区设置(tcode OY01)。