9
votes

Comment formater la date de DD, mois, année?

J'ai besoin de diviser la date Abap, comme xxx

"01" et "2009" sont trivial, mais comment puis-je obtenir le nom du mois (qui devrait être localisé)?

y a-t-il une fonction de faire cela?

S'il n'y a pas de cette fonction, peut-être une table avec des noms de mois?


0 commentaires

8 Réponses :


8
votes

Vous pouvez obtenir le nom du mois dans une langue donnée à l'aide de la fonction Module ' mois_names_get ', passant la langue en tant que paramètre. Le jour (dimanche par exemple) peut également être obtenu en utilisant ' rh_get_date_dayname '

Guillaume


0 commentaires

0
votes

Vous pouvez utiliser un simple FM 'mois_names_get' xxx


0 commentaires

3
votes

Je pense que le moyen absolu le plus simple serait d'appliquer la sortie de conversion LDate à votre champ de date. La plus facile consiste à appeler le module de fonction conversion_exit_ldate_output.

Ceci serait par exemple convertir xxx

à xxx (sauf si vous besoin de réellement avoir la journée, le texte du mois et l'année dans des chaînes séparées, que vous semblez indiquer. Quoi qu'il en soit, peut-être que cela aidera quelqu'un d'autre).


0 commentaires

3
votes

Ce code vous donnera la date au format texte long tel que "02 décembre 2011". Vous pouvez modifier le code en conséquence pour imprimer la date avec le nom du mois de longue durée.

DATA: LONG_DATE(20).
PERFORM GET_LONG_DATE USING LONG_DATE.
WRITE: LONG_DATE.

FORM GET_LONG_DATE USING DATE.

DATA: T_MONTH_NAMES LIKE TABLE OF T247 WITH HEADER LINE.

CALL FUNCTION 'MONTH_NAMES_GET'
 EXPORTING
   LANGUAGE     = SY-LANGU
  TABLES
    MONTH_NAMES = T_MONTH_NAMES
  .

DATA: YEAR(4)   TYPE C,
      MONTH(2)  TYPE C,
      DAY(2)    TYPE C.

YEAR = SY-DATUM+(4).
MONTH = SY-DATUM+4(2).
DAY = SY-DATUM+6(2).


READ TABLE T_MONTH_NAMES INDEX ( MONTH ).

CONCATENATE T_MONTH_NAMES-LTX ' ' DAY  INTO DATE SEPARATED BY SPACE.
CONCATENATE DATE ',' INTO DATE.
CONCATENATE DATE YEAR INTO DATE SEPARATED BY SPACE.

WRITE / DATE.

ENDFORM.


0 commentaires

2
votes
       EXPORTING

  input         = get_date

        IMPORTING

     OUTPUT        = get_date.

0 commentaires

1
votes

Normalement, vous pouvez également exporter la date au format de date spécifique du pays de l'usine:

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.


0 commentaires

-2
votes
data : lv_timestamp TYPE string,
         lv_str TYPE STRING.
  concatenate sy-datum sy-uzeit  into lv_timestamp.
concatenate 'C:\Users\Roopa Rani\desktop\header' '_'  lv_timestamp '.txt' INTO FILEPATH.
I think it's useful.

0 commentaires

-1
votes
PARAMETERS: P_1 TYPE SY-DATUM.

DATA : LV_DATE TYPE SY-DATUM,LV_TIME TYPE SY-UZEIT,lv_month type string.
        LV_TIME = SY-UZEIT.

DATA: YEAR(4)   TYPE C,
      MONTH(2)  TYPE C,
      DAY(2)    TYPE C.
      YEAR = P_1+0(4).
      MONTH = P_1+4(2).
      DAY = P_1+6(2).
      IF MONTH = '01'.
      lv_month = 'JAN'.


     ELSEIF Month = '02'.
     lv_month = 'Feb'.
     ELSEIF Month = '03'.
     lv_month = 'Mar'.
     ELSEIF Month = '04'.
     lv_month = 'Apr'.
     ELSEIF Month = '05'.
     lv_month = 'May'.
     ELSEIF Month = '06'.
     lv_month = 'Jun'.
     ELSEIF Month = '07'.
     lv_month = 'Jul'.
     ELSEIF Month = '08'.
     lv_month = 'Aug'.
     ELSEIF Month = '09'.
     lv_month = 'Sep'.
     ELSEIF Month = '10'.
     lv_month = 'Oct'.
     ELSEIF Month = '11'.
     lv_month = 'Nov'.
     ELSEIF Month = '12'.
     lv_month = 'Dec'.
     ENDIF.
   WRITE: '|',day NO-GAP,'-',
  lv_month NO-GAP,'-',year NO-GAP.

0 commentaires