abap 时间戳

本文详细介绍ABAP中如何将当前日期和时间转换为UNIX时间戳,并演示了如何使用JavaScript处理器进行转换,以及如何在ABAP中直接进行时间戳转换。此外,还展示了如何将UNIX时间戳转换回ABAP日期和时间格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

demo1


DATA:unix TYPE string.

PERFORM get_unix_time CHANGING unix.

*把当天日期转为UNIX时戳
FORM get_unix_time  CHANGING p_lv_unix.
  DATA:return_value TYPE string.
  DATA code TYPE string.

  DATA(js_processor) = cl_java_script=>create( ).

  code =
  'function getTime(day){' &&
  're = /(\d{4})(?:(\d{1,2})(?:(\d{1,2}))?)?(?:\s+(\d{1,2})(\d{1,2})(\d{1,2}))?/.exec(day);'&&
  'return new Date(re[1],(re[2]||1)-1,re[3]||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000;'&&
  '}'&& cl_abap_char_utilities=>cr_lf &&
  'var result = getTime("' && sy-datum && ` ` && sy-uzeit && '");' && cl_abap_char_utilities=>cr_lf  &&
  'result;'.

  return_value = js_processor->evaluate( code ).
  p_lv_unix  = return_value.
ENDFORM.




demo2


DATA:
  lv_ts_unix       TYPE string,
  lv_timezone_sec  TYPE p LENGTH 5,
  lv_timezone_name TYPE c LENGTH 7.

CALL 'C_GET_TIMEZONE'
      ID 'NAME' FIELD lv_timezone_name
      ID 'SEC'  FIELD lv_timezone_sec.

lv_timezone_sec = 0 - sy-tzone.

PERFORM date_time_to_p6(rstr0400)
        USING sy-datum
              sy-uzeit
              lv_ts_unix
              lv_timezone_sec.

WRITE: lv_ts_unix.

DATA:
  lv_datum TYPE sydatum,
  lv_uzeit TYPE string.

PERFORM p6_to_date_time(rstr0400)
        USING lv_ts_unix
              lv_timezone_sec
              lv_uzeit
              lv_datum .

WRITE /: lv_datum, lv_uzeit.




demo3

CL_ABAP_TSTMP
CL_APL_TESTZONE_SERVICES
 
CONVERT_ABAP_TIMESTAMP_TO_JAVA

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值