网站首页 > 博客文章 正文
在跨系统调用交互中,经常会调用Java系统接口,而一般Java系统的接口都会使用时间戳戳进行加签,进而防止数据被篡改。在abap中如何获取java时间戳呢?
获得系统时区当前时间戳-长格式
DATA:lv_timestampl TYPE timestampl."长时间格式的时间戳
DATA:lv_str_timestampl TYPE char22.
GET TIME STAMP FIELD lv_timestampl.
调用系统类方法进行数据获得java时间戳(毫秒级别)
DATA lv_java_timestamp TYPE string.
cl_pco_utility=>convert_abap_timestamp_to_java(
EXPORTING
iv_date = conv #( lv_str_timestampl(8) )
iv_time = conv #( lv_str_timestampl+8(6) )
iv_msec = conv #( lv_str_timestampl+15(3) )
IMPORTING
ev_timestamp = lv_java_timestamp
).
注意时区的转换
可以使用https://tool.lu/timestamp/ 工具测试。
看上面的工具里面写了一个java的为什么和其他系统的时间戳存储方式不一致。java实际上是按照unix的时间戳来处理的。参考wiki百科
Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。一个小时表示为UNIX时间戳格式为:3600秒;
一天表示为UNIX时间戳为86400秒,闰秒不计算。
在大多数的 Unix 系统中 Unix 时间戳存储为 32 位,这样会引发 2038 年问题或 Y2038。
这个还是一个比较有意思的话题。
所以在ABAP到UNIX需要进行一个这样的转换。
根据上面的Wiki的说明我们看一下cl_pco_utility=>convert_abap_timestamp_to_java
发现实际上,他里面有一个把日期用减掉19700101步骤,相当于我们的ABAP的日期就从19700101开始计算。然后把计算结果得到的天转换为秒,再加上时间转换为秒。再把结果转换为毫秒。最后再加上毫秒的数据
这样就计算出了Unix 时间(毫秒级别)了。同样其他级别的时间我们也可以这样计算。
所以只要懂原理,逻辑是很简单。
猜你喜欢
- 2024-09-11 SAP通用删除归档程序(sap怎么清除历史数据)
- 2024-09-11 科莱特 | SAP ABAP模块内容之屏幕设计(七)
- 2024-09-11 SAP License:BASIS 事务代码速记(saphr常用事务代码)
- 2024-09-11 哪种条形码产品最适合你的环境?TBarCode/Direct常见问题集锦
- 2024-09-11 不容错过的SAP ABAP官方顾问培训课程!联系迪森,即享超值优惠
- 2024-09-11 SAP ABAP学员JOHNSON92学习有四个月了
- 2024-09-11 无数人口中的最强战靴!全新配色驭帅 13 ?明日登场
- 2024-09-11 订单计划、智能排产,实现制造工厂高效运营丨创新场景
- 2024-09-11 科莱特 | SAP ABAP模块内容之程序跟踪调试(一)
- 2024-09-11 闪电侠之子专属配色!韦德之道 8“初心”周六即将发售
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 358℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)