**方法签名: IV_TIMESTAMP TYPE STRING自1970年1月1日格林威治标准时间00:00:00以来的毫秒数
EV_DATE TYPE SYDATE SYST的日期数据元素
EV_TIME TYPE SYUZEIT日期和时间,当前Application Server时间
EV_MSEC TYPE NUM03剩余毫秒
METHOD convert_java_timestamp_to_abap。
数据:
lv_date TYPE sy-datum,
lv_days_i TYPE i,
lv_sec_i TYPE i,
lv_timestamp TYPE时间戳,
lv_timsmsec TYPE时间时间戳。
常数:
lc_day_in_sec类型i值86400。
* IV_TIMESTAMP自格林威治标准时间1970年1月1日00:00:00起存储毫秒
lv_timestamp = iv_timestamp/1000。"以秒为单位的时间戳
*一天有86400秒:时间戳记以天为单位
lv_days_i = lv_timestamp DIV lc_day_in_sec。
lv_date ='19700101'。
ev_date = lv_date + lv_days_i。
*休息秒(时间戳-天)
lv_sec_i = lv_timestamp MOD lc_day_in_sec。
ev_time = lv_sec_i。
*休息秒和毫秒
lv_timsmsec = lv_timestamp MOD lc_day_in_sec。
lv_timsmsec = lv_timsmsec-lv_sec_i。
ev_msec = lv_timsmsec * 1000。
终结法。
嗨,
我不知道任何比您建议的功能或代码短的功能或代码。
事实上,我什至不知道您的聪明计算,实际上是在写此信息以感谢您。
所以,谢谢! :-)
Br Linus
嗨,您可以使用:
1。 使用...
2在程序RSTR0400中执行DATE_TIME_TO_P6。 在程序RSTR0400中执行P6_TO_DATE_TIME_TZ ...
这些家伙来自BAsis软件包,应该随处可见。
BR,Dima
嗨,
您的解决方案是正确的。 但是,它不考虑毫秒部分。
您可以使用此类:CL_PCO_UTILITY => CONVERT_JAVA_TIMESTAMP_TO_ABAP。
请参阅此旧博客评论: https://blogs.sap.com/2017/04/18/abap-unix-timestamp/#comment-373331
如果您的系统中不存在此类,则以下是代码以及方法签名:
一周热门 更多>