CICS FORMATTIME provides time formatting capabilities for programs and transactions. It enables programs to format time values, display date/time information, and handle time formatting in CICS environments.
CICS FORMATTIME is a command that allows programs to format time values for display purposes. It provides time formatting capabilities, date/time display, and time formatting for CICS applications.
1234567EXEC CICS FORMATTIME FROMTIME(input-time) TOTIME(output-time) [FROMFORMAT(input-format)] [TOFORMAT(output-format)] [RESP(response-code)] END-EXEC
Time display formats
Standard time formats
Custom time formats
Specialized time formats
123456789101112131415161718192021222324252627282930IDENTIFICATION DIVISION. PROGRAM-ID. FORMATTIME01. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-TIME PIC X(14) VALUE '20231225143000'. 01 OUTPUT-TIME PIC X(19). 01 INPUT-FORMAT PIC X(14) VALUE 'YYYYMMDDHHMMSS'. 01 OUTPUT-FORMAT PIC X(19) VALUE 'YYYY-MM-DD HH:MM:SS'. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. DISPLAY 'Formatting time for display' DISPLAY 'Input: ' INPUT-TIME EXEC CICS FORMATTIME FROMTIME(INPUT-TIME) TOTIME(OUTPUT-TIME) FROMFORMAT(INPUT-FORMAT) TOFORMAT(OUTPUT-FORMAT) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Time formatting successful' DISPLAY 'Output: ' OUTPUT-TIME ELSE DISPLAY 'Time formatting failed' END-IF EXEC CICS RETURN END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364IDENTIFICATION DIVISION. PROGRAM-ID. FORMATTIME02. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-TIME PIC X(14). 01 OUTPUT-TIME PIC X(19). 01 INPUT-FORMAT PIC X(14). 01 OUTPUT-FORMAT PIC X(19). 01 RESPONSE-CODE PIC S9(8) COMP. 01 FORMAT-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-FORMATS PIC S9(2) COMP VALUE 3. 01 TIME-LIST. 05 TIME-ITEM OCCURS 3 TIMES. 10 TIME-INPUT PIC X(14). 10 TIME-OUTPUT PIC X(19). 10 TIME-INPUT-FMT PIC X(14). 10 TIME-OUTPUT-FMT PIC X(19). PROCEDURE DIVISION. PERFORM INITIALIZE-TIMES PERFORM FORMAT-MULTIPLE-TIMES EXEC CICS RETURN END-EXEC. INITIALIZE-TIMES. MOVE '20231225143000' TO TIME-INPUT(1) MOVE 'YYYY-MM-DD HH:MM:SS' TO TIME-OUTPUT-FMT(1) MOVE 'YYYYMMDDHHMMSS' TO TIME-INPUT-FMT(1) MOVE '20231225' TO TIME-INPUT(2) MOVE 'YYYY-MM-DD' TO TIME-OUTPUT-FMT(2) MOVE 'YYYYMMDD' TO TIME-INPUT-FMT(2) MOVE '143000' TO TIME-INPUT(3) MOVE 'HH:MM:SS' TO TIME-OUTPUT-FMT(3) MOVE 'HHMMSS' TO TIME-INPUT-FMT(3). FORMAT-MULTIPLE-TIMES. PERFORM VARYING FORMAT-COUNT FROM 1 BY 1 UNTIL FORMAT-COUNT > MAX-FORMATS MOVE TIME-INPUT(FORMAT-COUNT) TO INPUT-TIME MOVE TIME-INPUT-FMT(FORMAT-COUNT) TO INPUT-FORMAT MOVE TIME-OUTPUT-FMT(FORMAT-COUNT) TO OUTPUT-FORMAT PERFORM FORMAT-SINGLE-TIME IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE OUTPUT-TIME TO TIME-OUTPUT(FORMAT-COUNT) DISPLAY 'Format ' FORMAT-COUNT ' successful' DISPLAY 'Output: ' TIME-OUTPUT(FORMAT-COUNT) ELSE DISPLAY 'Format ' FORMAT-COUNT ' failed' END-IF END-PERFORM. FORMAT-SINGLE-TIME. EXEC CICS FORMATTIME FROMTIME(INPUT-TIME) TOTIME(OUTPUT-TIME) FROMFORMAT(INPUT-FORMAT) TOFORMAT(OUTPUT-FORMAT) RESP(RESPONSE-CODE) END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354IDENTIFICATION DIVISION. PROGRAM-ID. FORMATTIME03. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-TIME PIC X(14) VALUE '20231225143000'. 01 OUTPUT-TIME PIC X(19). 01 INPUT-FORMAT PIC X(14) VALUE 'YYYYMMDDHHMMSS'. 01 OUTPUT-FORMAT PIC X(19) VALUE 'YYYY-MM-DD HH:MM:SS'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 RETRY-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-RETRIES PIC S9(2) COMP VALUE 3. 01 FORMAT-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM FORMAT-TIME-WITH-RETRY EXEC CICS RETURN END-EXEC. FORMAT-TIME-WITH-RETRY. PERFORM FORMAT-TIME IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' time formatting' PERFORM FORMAT-TIME-WITH-RETRY END-IF. FORMAT-TIME. EXEC CICS FORMATTIME FROMTIME(INPUT-TIME) TOTIME(OUTPUT-TIME) FROMFORMAT(INPUT-FORMAT) TOFORMAT(OUTPUT-FORMAT) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO FORMAT-SUCCESSFUL DISPLAY 'Time formatting successful' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized for time formatting' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid time formatting request' WHEN DFHRESP(TIMEERR) DISPLAY 'Time formatting error' WHEN DFHRESP(FORMATERR) DISPLAY 'Time format error' WHEN DFHRESP(INVALIDTIME) DISPLAY 'Invalid time value' WHEN OTHER DISPLAY 'Unexpected time formatting error' END-EVALUATE.
Think of CICS FORMATTIME like changing how you write the time:
Create a program that formats time between different formats.
Write a program that manages multiple time formatting operations.
Implement comprehensive error handling for time formatting failures.