在ABAP程序中将JSON日期从外部OData转换为YYYYMMDD

2020-08-15 03:15发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP专家,

我正在使用CL_HTTP_CLIENT在我的SAP ECC系统(Netweaver 7.0版)中调用外部OData服务。

当我调用服务时,我得到的是JSON格式的日期,即Unix/Epoch格式的日期:" \/Date(1567981296000)\/"

按照Unix格式,此值表示 01.01.1970 + 1567981296000秒。

我想用我的 ABAP代码将此日期转换为常规SAP日期时间格式(YYYYMMDD HH:MM:SS)。

但是,我找不到能完成此转换并给我真实日期的现成的FM。

有人可以为此提供解决方案吗?

此致

巴拉特·巴贾杰

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP专家,

我正在使用CL_HTTP_CLIENT在我的SAP ECC系统(Netweaver 7.0版)中调用外部OData服务。

当我调用服务时,我得到的是JSON格式的日期,即Unix/Epoch格式的日期:" \/Date(1567981296000)\/"

按照Unix格式,此值表示 01.01.1970 + 1567981296000秒。

我想用我的 ABAP代码将此日期转换为常规SAP日期时间格式(YYYYMMDD HH:MM:SS)。

但是,我找不到能完成此转换并给我真实日期的现成的FM。

有人可以为此提供解决方案吗?

此致

巴拉特·巴贾杰

付费偷看设置
发送
5条回答
SAP小菜
1楼 · 2020-08-15 03:35.采纳回答

你好 Bharat Bajaj

也许此评论会为您提供帮助: https: //blogs.sap.com/2017/04/18/abap-unix-timestamp/#comment-373331

亲切的问候,
Mateusz
huskylover
2楼-- · 2020-08-15 03:45

您好 Mateusz Adamus

非常感谢这段代码。 效果很好。

致谢

巴拉特·巴哈(Bharat Bajaj)

派大星 ヾ
3楼-- · 2020-08-15 03:35

如果您知道简单转换/想使用它,则可以使用格式设置来转换"刻度"->请参见 ABAP文档-ST-基本类型的映射规则

悠然的二货
4楼-- · 2020-08-15 03:42

感谢共享链接。.不幸的是,我在Netweaver 7.0中使用的是旧版本的SAP ECC,因此系统中不存在json转换。

SAP小菜
5楼-- · 2020-08-15 03:35

现在,我发现一个更好的解决方案 JSON DateTime值的一种方法。

如果我将ABAP字段声明为:

LV_DATETIME TYPE TIMESTAMP(而不是字符串)

/ui2/cl_json类将将JSON日期自动转换为时间戳。

尝试以下示例代码:

 TYPES:BEGIN OF lty_data,
           order_no TYPE char10,
           create_date TYPE时间戳," <<<<<<<<<这是技巧
         lty_data的结尾。

 数据:ls_data TYPE lty_data,
       lv_json类型/ui2/cl_json => json。

 lv_json ='{" Order_No":" 0021232324"," Create_Date":"/img/Date(1596240000000)/"}"。

/ui2/cl_json =>反序列化(
   出口
     json = lv_json" JSON字符串
   改变
     data = ls_data)。 转换后的数据

 

反序列化后,您会注意到ls_data-create_date转换为20200801000000。

这很简单,但非常重要。

希望这会有所帮助。

此致

巴拉特·巴贾杰

一周热门 更多>