ABAP 日期格式转换(非函数转换)

ABAP 日期格式转换(非函数转换)

1.应用情况:把excel的数据导入SAP中,并且日期格式放入日期格式字段是会直接宕了程序,
这时候,就需要把文本带符号的日期,转化为SAP内部纯数字的日期格式。

2.需求:
输入:2020/6/1 或者 2020.6.1 以及 2020-6-1
结果:20200601

3.源代码

DATA:  lv_date1 TYPE string VALUE '2020-6-20'.
DATA:  lv_date2  TYPE string  VALUE '2020/06/21'.

PERFORM date_change CHANGING lv_date1.
MESSAGE   lv_date1 TYPE 'I'.

PERFORM date_change CHANGING lv_date2.
MESSAGE   lv_date2 TYPE 'I'.

FORM date_change  CHANGING lv_date.  
  DATA:lv_str  TYPE c, "使用什么日期分割符号
       lw_1(4) TYPE  c, "lw_2(2) TYPE  c, "月
       lw_3(2) TYPE  c. "*按照符号把数字分开,可能是'.'或者'/' '-'.
  SEARCH lv_date FOR '/'.
  IF sy-subrc = 0.
    lv_str = '/'.
  ELSE.
    SEARCH lv_date FOR '.'.
    IF sy-subrc = 0.
      lv_str = '.'.
    ELSE.
      SEARCH lv_date FOR '-'.
      IF sy-subrc = 0.
        lv_str = '-'.
      ENDIF.
    ENDIF.
  ENDIF.
*把年月日分开分别放在lw_1 lw_2 lw_3.
  SPLIT  lv_date  AT lv_str  INTO lw_1 lw_2 lw_3.
 *月份和日子,只有一位的话加个0.
  DATA(length2) = strlen( lw_2 ).
  DATA(length3) = strlen( lw_3 ).

  IF length2 = 1.
    lw_2 = '0' && lw_2.
  ENDIF.

  IF length3 = 1.
    lw_3 = '0' && lw_3.
  ENDIF.

  "日期格式转换成系统格式,纯数字。
  lv_date = lw_1 && lw_2 && lw_3.
ENDFORM.

输入:lv_date1:2020-6-20
结果:
在这里插入图片描述

输入:lv_date2:2020/06/21
结果:
在这里插入图片描述
分享使我快乐,我们一同成长,码创天下!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值