====== ABAP Date Formatting ====== Il existe moultes techniques pour formater des dates : * Using the WRITE statement *************************** data: gd_date(10). "field to store output date * Converts SAP date from 20020901 to 01.09.2002 write sy-datum to gd_date dd/mm/yyyy. * Converts SAP date from 20020901 to 01.09.02 write sy-datum to gd_date dd/mm/yy. * Using data manipulation techniques ************************************ data: gd_date(8). "field to store output date * Converts SAP date from 20010901 to 01092001 gd_date(2) = sy-datum+6(2). gd_date+2(2) = sy-datum+4(2). gd_date+4(4) = sy-datum(4). data mydate like sy-datum. data: year(4) type c, month(2) type c, date(2) type c. year = mydate(4). month = mydate+4(2). date = mydate+6(2). write: / year no-gap, month no-gap, date. * Using Function modules ************************ data: gd_date(8). "field to store output date * Converts date from 20010901 to 01SEP2001 gd_date = sy-datum. CALL FUNCTION 'CONVERSION_EXIT_IDATE_OUTPUT' EXPORTING input = gd_date IMPORTING OUTPUT = gd_date. * Do you want to WRITE it to a list screen? Use the formatting options described in the documentation and online help: data : date(10) type c value '01122004'. WRITE l_my_date MM/DD/YYYY. write:/ gv_date edit mask 'YYYY.MM.DD'. write:/ date using edit mask '__/__/____'. CONCATENATE: T_0008-BEGDA+6(02) '/' T_0008-BEGDA+4(02) '/' T_0008-BEGDA(04) INTO T_AUX-DT_ALT. * To set the date format in a SAPscript form, see the SET DATE MASK command. * To print the formatted date in a SmartForm, use the WRITE command and a temporary variable (yes, ugly, I know...) * Most controls (ALV Grid for example) should take care of the format automatically. if w_country is initial. select single LAND1 from T001W into w_country where WERKS eq w_the_plant. endif. SET COUNTRY w_country. write w_the_date to w_export. * Use the fm 'DAYS_BETWEEN_TWO_DATES'.