在COBOL程序中显示格式化日期

时间:2012-11-27 06:51:57

标签: cobol cobol85

我在数据库中以 YYYY-MM-DD:hh:min:ss 格式获取日期变量,我想在报告 YYYY-MM-DD HH:MIN中显示它:SS 使用cobol程序。怎么做?

2 个答案:

答案 0 :(得分:3)

看看内在函数,例如

  • FUNCTION COMBINED-DATETIME
  • FUNCTION CURRENT-DATE
  • 功能日期整数
  • 功能日期到YYYYMMDD
  • 功能完整日期
  • 功能LOCALE-DATE
  • 还有很多其他人,google用于OpenCOBOL常见问题解答,请参阅第4.2节中的示例

http://opencobol.add1tocobol.com/#does-opencobol-implement-any-intrinsic-functions

要获取当前时钟,请查看从日期开始接受YYYYMMDD,接受时间

然后您可能想要创建一个PICTURE数据子句,让您可以绝对控制日期和时间的格式和显示方式。

当你想快速将冒号转换为空格或斜线等时,我也发现INSPECT REPLACING是一个方便的东西。

    identification division.
    program-id. inspecting.

    data division.
    working-storage section.
    01  ORIGINAL            pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.
    01  DATEREC             pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.

    procedure division.

    move function when-compiled to DATEREC ORIGINAL

    INSPECT DATEREC REPLACING ALL "/" BY ":" AFTER INITIAL SPACE

    display
        "Intrinsic function WHEN-COMPILED " ORIGINAL
    end-display
    display
        " after INSPECT REPLACING         " DATEREC
    end-display

    goback.
    end program inspecting.

Intrinsic function WHEN-COMPILED 2010/03/25 23/05/0900-04/00
 after INSPECT REPLACING         2010/03/25 23:05:0900-04:00

答案 1 :(得分:0)

我喜欢详细的PICTURE方法,就像Brian Tiffin所说,然后你只需要用括号移动数据。

类似于:MOVE MY-DATE(1:4) to MY-YEAR,会将前4个字符移动到所需的字段。