9

ABAPの日付を次のように分割する必要があります

20091101 --> "01", "november", "2009"

「01」と「2009」は些細なことですが、月名 (ローカライズする必要があります) を取得するにはどうすればよいですか?

それを行う機能はありますか?

そのような機能がない場合は、おそらく月名のテーブルですか?

4

8 に答える 8

8

モジュール関数 ' ' を使用して、特定の言語で月の名前を取得し、MONTH_NAMES_GET言語をパラメーターとして渡すことができます。日 (たとえば日曜日) は、' RH_GET_DATE_DAYNAME'を使用して取得することもできます。

ギヨーム

于 2009-10-13T11:52:59.293 に答える
3

最も簡単な方法は、変換出口 LDATE を日付フィールドに適用することだと思います。汎用モジュール CONVERSION_EXIT_LDATE_OUTPUT を呼び出すのが最も簡単です。

これは、たとえば変換します

20090101

01. January 2009

(実際に日、月のテキスト、年を別々の文字列にする必要がある場合を除きます。これは、あなたが示しているようです。とにかく、他の誰かを助けるかもしれません)。

于 2011-07-07T18:49:24.247 に答える
3

このコードは、「2011 年 12 月 2 日」のような長いテキスト形式で日付を表示します。それに応じてコードを変更して、長い MONTH 名で日付を印刷することができます。

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.
于 2011-12-02T07:24:05.600 に答える
2
* to get full name of the day / month also can use


          GET_MONTH_NAME ... for month and 
            GET_DATE_DAYNAME for the specific day name too

日付の他の形式を取得する他の方法は次のとおりです。

  • WRITE ステートメントの使用

            data: get_date(10).  "field to store output date
    
    • SAP 日付を 20130901 から 01.09.2013 に変換します

          write sy-datum to get_date dd/mm/yyyy.
      
    • SAP 日付を 20130901 から 01.09.13 に変換します

          write sy-datum to get_date dd/mm/yy.
      
    • データ操作技術の使用

      data: get_date(8).  "field to store output date
      
    • SAP 日付を 20130901 から 01092013 に変換します

           get_date(2)   = sy-datum+6(2).
           get_date+2(2) = sy-datum+4(2).
           get_date+4(4) = sy-datum(4).
      
    • 汎用モジュールの使用

          data: get_date(8).  "field to store output date
      
    • 日付を 20130901 から 01SEP2013 に変換します

          get_date   = sy-datum.
      

      CALL FUNCTION 'CONVERSION_EXIT_IDATE_OUTPUT'

             EXPORTING
      
        input         = get_date
      
              IMPORTING
      
           OUTPUT        = get_date.
      

      特定の日付/月および年に使用できるこれらすべての形式

于 2013-11-29T11:23:33.453 に答える
1

通常、日付を工場レベルの国固有の日付形式にエクスポートすることもできます。

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.
于 2013-12-24T03:11:18.627 に答える
0

シンプルな FM 'MONTH_NAMES_GET' を使用できます

CALL FUNCTION 'MONTH_NAMES_GET'
  EXPORTING
    LANGUAGE = SY-LANGU
* IMPORTING
* RETURN_CODE =
  TABLES
    month_names = it_t247
  EXCEPTIONS
    MONTH_NAMES_NOT_FOUND = 1
    OTHERS = 2
.

IF sy-subrc 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
于 2011-05-12T11:47:19.320 に答える
-2
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.

便利だと思います。

于 2014-05-14T09:20:29.737 に答える