写报表的时候用到一个日期格式转换,想不起来用啥了,只知道有,然后就百度了下,下面这篇文章就挺好,有个很不错的demo、

大家分享一下哈。


原文地址

https://www.jianshu.com/p/381641b3e4d4


*&---------------------------------------------------------------------*
*& Report ZGML_DATE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zgml_date.
DATA: gv_xudatfm TYPE xudatfm,
      gv_domval  TYPE domvalue_l,
      gv_text    TYPE val_text,
      gv_exdat   TYPE char25,
      gv_exdatfm TYPE xudatfm,
      gv_msg     TYPE string,
      gv_date    TYPE string.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_date   TYPE sy-datum,
            p_udatfm TYPE xudatfm OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.
*get default date format.
  CALL METHOD cl_abap_datfm=>get_datfm
    RECEIVING
      datfm = gv_xudatfm.
  MOVE gv_xudatfm TO p_udatfm.

START-OF-SELECTION.
*check the date format entered
  CLEAR: gv_xudatfm,gv_domval,gv_text.
  CALL METHOD cl_abap_datfm=>get_datfm
    RECEIVING
      datfm = gv_xudatfm.
  IF gv_xudatfm IS NOT INITIAL.
    MOVE gv_xudatfm TO gv_domval.
    CALL FUNCTION 'DOMAIN_VALUE_GET'
      EXPORTING
        i_domname  = 'XUDATFM'
        i_domvalue = gv_domval
      IMPORTING
        e_ddtext   = gv_text
      EXCEPTIONS
        not_exist  = 1
        OTHERS     = 2.
    IF sy-subrc = 0.
      WRITE :/ 'Default Date format',
              AT 39(2) '=> ',
              AT 44(10) gv_text.
    ENDIF.
  ENDIF.
  IF p_udatfm IS NOT INITIAL.
    MOVE p_udatfm TO gv_domval.
    CALL FUNCTION 'DOMAIN_VALUE_GET'
      EXPORTING
        i_domname  = 'XUDATFM'
        i_domvalue = gv_domval
      IMPORTING
        e_ddtext   = gv_text
      EXCEPTIONS
        not_exist  = 1
        OTHERS     = 2.
    IF sy-subrc = 0.
      WRITE :/ 'Selected Date format',
              AT 39(2) '=> ',
              AT 44(10) gv_text.
    ENDIF.
  ENDIF.
  WRITE :/ '----------------------------------------------------'.
  CLEAR : gv_msg.
  TRY.
      CALL METHOD cl_abap_datfm=>conv_date_int_to_ext
        EXPORTING
          im_datint    = p_date
          im_datfmdes  = p_udatfm
        IMPORTING
          ex_datext    = gv_exdat
          ex_datfmused = gv_exdatfm.
    CATCH cx_abap_datfm_format_unknown .
      MOVE 'Wrong Date format' TO gv_msg.
  ENDTRY.
  IF gv_msg IS NOT INITIAL.
    WRITE :/ gv_msg.
  ELSE.
    MOVE p_date TO gv_date.
    WRITE :/ 'Int format => ',
             AT 15(10) gv_date,
             AT 28(15) 'Ext Format => ',
             AT 44(10) gv_exdat.
  ENDIF.


效果:

ABAP日期格式转换_java

ABAP日期格式转换_java_02