在cobol中将日期DD-MMM-YYYY转换为YYYYMMDD

在cobol中将日期DD-MMM-YYYY转换为YYYYMMDD,cobol,Cobol,我正在尝试在COBOL中将日期格式从DD-MON-YYYY更改为YYYY/MM/DD,如果可能的话,我很高兴 我一直在搜索,但找不到任何实用程序或日期函数来更改它 我所尝试的: 使用解除拉伸并将一月转换为01,二月转换为02,依此类推。 COBOL缺少有用的库和实用程序。 大多数COBOL程序员只是重新发明轮子,自己编写代码 类似于未经测试的代码!:-- 01 OLD-DATE. 05 OLD-DD PIC XX. 05 FILLER PIC X. 05 OLD-M

我正在尝试在COBOL中将日期格式从DD-MON-YYYY更改为YYYY/MM/DD,如果可能的话,我很高兴

我一直在搜索,但找不到任何实用程序或日期函数来更改它

我所尝试的:

使用解除拉伸并将一月转换为01,二月转换为02,依此类推。
COBOL缺少有用的库和实用程序。 大多数COBOL程序员只是重新发明轮子,自己编写代码

类似于未经测试的代码!:--

01 OLD-DATE.
   05 OLD-DD    PIC XX.
   05 FILLER    PIC X.
   05 OLD-MON   PIC XXX.
   05 FILLER    PIC X.
   05 OLD-YEAR  PIC XXXX.
01 NEW-DATE.
   05 NEW-YEAR  PIC XXXX.
   05 FIRST-SLASH PIC X VALUE '/'.
   05 NEW-MM    PIC 99.
   05 SECOND-SLASH PIC X VALUE '/'.
   05 NEW-DD    PIC XX.
01 M-TAB.
   M      PIC XXX OCCURS 12.
01 M-VALS REDEFINES M-TAB VALUE 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'.
01 M-X    PIC S9(8) COMP VALUE 0.

.......
  MOVE OLD-YEAR TO NEW-YEAR.
  PERFORM VARYING M-X FROM 1 TO 12
    IF OLD-MON = M(M-X)
        MOVE M-X TO NEW-MM
    END IF
 END PERFORM.
 MOVE OLD-DD TO NEW-DD.

COBOL缺少有用的库和实用程序。 大多数COBOL程序员只是重新发明轮子,自己编写代码

类似于未经测试的代码!:--

01 OLD-DATE.
   05 OLD-DD    PIC XX.
   05 FILLER    PIC X.
   05 OLD-MON   PIC XXX.
   05 FILLER    PIC X.
   05 OLD-YEAR  PIC XXXX.
01 NEW-DATE.
   05 NEW-YEAR  PIC XXXX.
   05 FIRST-SLASH PIC X VALUE '/'.
   05 NEW-MM    PIC 99.
   05 SECOND-SLASH PIC X VALUE '/'.
   05 NEW-DD    PIC XX.
01 M-TAB.
   M      PIC XXX OCCURS 12.
01 M-VALS REDEFINES M-TAB VALUE 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'.
01 M-X    PIC S9(8) COMP VALUE 0.

.......
  MOVE OLD-YEAR TO NEW-YEAR.
  PERFORM VARYING M-X FROM 1 TO 12
    IF OLD-MON = M(M-X)
        MOVE M-X TO NEW-MM
    END IF
 END PERFORM.
 MOVE OLD-DD TO NEW-DD.

哪个编译器?编译器的哪个版本?哪个操作系统?关于标准COBOL,由于MON部分,您需要编写自己的函数。可能和你一样。对于返回值,您可以使用格式化的-DATE函数,但在任何语言中都没有标准的any字符串。哪个编译器?编译器的哪个版本?哪个操作系统?关于标准COBOL,由于MON部分,您需要编写自己的函数。可能和你一样。对于返回值,您可以使用格式化的-DATE函数,但没有任何语言的标准字符串来表示月份。