Solución:
Puede obtener el nombre del mes en un idioma determinado utilizando la función del módulo ‘MONTH_NAMES_GET
‘, pasando el idioma como parámetro. El día (domingo por ejemplo) también se puede obtener usando ‘RH_GET_DATE_DAYNAME
‘
Guillaume
Este código le dará la fecha en formato de texto largo, como “02 de diciembre de 2011”. Puede cambiar el código en consecuencia para imprimir la fecha con un nombre MES largo.
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.
Creo que la forma más sencilla sería aplicar la salida de conversión LDATE a su campo de fecha. Lo más fácil es llamar al módulo de función CONVERSION_EXIT_LDATE_OUTPUT.
Esto, por ejemplo, convertiría
20090101
para
01. January 2009
(A menos que necesite tener el día, el texto del mes y el año en cadenas separadas, lo que parece indicar. De todos modos, tal vez ayude a otra persona).