CEEDATM—Convert seconds to character timestamp
CEEDATM converts a number representing the number of seconds since 00:00:00 14 October 1582 to a character string format. The format of the output is a character string timestamp, for example: 1988/07/26 20:37:00.
The inverse of CEEDATM is CEESECS, which converts a timestamp to number of seconds.
Syntax >>-CEEDATM--(--input_seconds--,--picture_string--,--------------> >--output_timestamp--,--fc--)----------------------------------><
- input_seconds (input)
- A 64-bit double floating-point number representing the number of seconds since 00:00:00 on 14 October 1582, not counting leap seconds. For example, 00:00:01 on 15 October 1582 is second number 86,401 (24*60*60 + 01). The valid range of input_seconds is 86,400 to 265,621,679,999.999 (23:59:59.999 31 December 9999).
- picture_string (input)
- A halfword length-prefixed character string (VSTRING), representing
the desired format of output_timestamp,
for example, MM/DD/YY HH:MI AP.
Each character in the picture_string represents a character in output_timestamp. If delimiters such as a slash (/) appear in the picture string, they are copied as is to output_timestamp.
See Table 1 for a list of valid picture character terms and Table 2 for examples of valid picture strings.
If picture_string is null or blank, CEEDATM gets picture_string based on the current value of the COUNTRY runtime option. For example, if the current value of the COUNTRY runtime option is US (United States), the date-time format would be "MM/DD/YY HH:MI:SS AP"; if the current COUNTRY value is FR (France), however, the date-time format would be "DD.MM.YYYY HH:MI:SS".
If picture_string includes the Japanese Era symbol <JJJJ>, the YY position in output_timestamp represents the year within Japanese Era. See Table 2 for an example. See Table 3 for a list of Japanese Eras supported by CEEDATM.
If picture_string includes era symbol <CCCC> or <CCCCCCCC>, the YY position in output_timestamp represents the year within the era. See Table 2 for an example.
- output_timestamp (output)
- A fixed-length 80-character string (VSTRING), that is the result
of converting input_seconds to the format
specified by picture_string. If necessary,
the output is truncated to the length of output_timestamp.
See Table 1 for sample output.
If input_seconds is not valid, output_timestamp is set to all blanks and CEEDATM terminates with a non-CEE000 symbolic feedback code.
- fc (output)
- A 12-byte feedback code, optional in some languages,
that indicates the result of this service. If you choose to omit this
parameter, refer to Invoking callable services for the
appropriate syntax to indicate that the feedback code was omitted. The following symbolic conditions can result from this service:
Code Severity Message number Message text CEE000 0 — The service completed successfully. CEE2E9 3 2505 The number-of-seconds value was not within the supported range. CEE2EA 3 2506 <JJJJ>, <CCCC> or <CCCCCCCC> was used in a picture string passed to CEEDATM, but the input number-of-seconds value was not within the supported range. The Era could not be determined. CEE2EM 3 2518 An invalid picture string was specified. CEE2EV 2 2527 The timestamp string returned by CEEDATM was truncated. CEE3CF 2 3471 The country code country-code was not valid for CEEFMDT. The default date and time picture string datetime-string was returned.
Usage notes
- The probable cause for receiving message number 2518 is a picture string that contains a DBCS string that is not valid. You should verify that the data in the picture string is correct.
- To create a null VSTRING, set the length to zero; the content of the text portion does not matter. To create a blank VSTRING, any length greater than zero can be used; the content of the text portion must be spaces or blanks.
- z/OS UNIX consideration—In multithread applications, CEEDATM applies to the enclave.
For more information
- See CEESECS—Convert timestamp to seconds for more information about the CEESECS callable service.
- See COUNTRY for more information about the COUNTRY runtime option.
- See CEEFMDT—Get default date and time format for information about how to get a default timestamp for a given country code.
Examples
- Following is an example of CEEDATM called by C/C++.
/*Module/File Name: EDCDATM */ #include <leawi.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ceeedcct.h> int main(void) { /* September 13, 1991 at 11:23:23 PM */ _FLOAT8 seconds = 12904183403.0; _VSTRING date,date_pic; _CHAR80 out_date; _FEEDBACK fc; strcpy(date_pic.string, "Mmmmmmmmmmmz DD, YYYY at ZH:MI:.SS AP"); date_pic.length = strlen(date_pic.string); CEEDATM(&seconds,&date_pic,out_date,&fc); if ( _FBCHECK ( fc , CEE000 ) != 0 ) { printf("CEEDATM failed with message number %d\n", fc.tok_msgno); exit(2999); } printf("%.80s\n",out_date); }
- Following is an example of CEEDATM called by COBOL.
CBL LIB,QUOTE *Module/File Name: IGZTDATM ************************************************* ** ** ** Function: CEEDATM - convert seconds to ** ** character timestamp ** ** ** ** In this example, a call is made to CEEDATM ** ** to convert a date represented in Lilian ** ** seconds (the number of seconds since ** ** 00:00:00 14 October 1582) to a character ** ** format (such as 06/02/88 10:23:45). The ** ** result is displayed. ** ** ** ************************************************* IDENTIFICATION DIVISION. PROGRAM-ID. CBLDATM. DATA DIVISION. WORKING-STORAGE SECTION. 01 DEST PIC S9(9) BINARY VALUE 2. 01 SECONDS COMP-2. 01 IN-DATE. 02 Vstring-length PIC S9(4) BINARY. 02 Vstring-text. 03 Vstring-char PIC X OCCURS 0 TO 256 TIMES DEPENDING ON Vstring-length of IN-DATE. 01 PICSTR. 02 Vstring-length PIC S9(4) BINARY. 02 Vstring-text. 03 Vstring-char PIC X OCCURS 0 TO 256 TIMES DEPENDING ON Vstring-length of PICSTR. 01 TIMESTP PIC X(80). 01 FC. 02 Condition-Token-Value. COPY CEEIGZCT. 03 Case-1-Condition-ID. 04 Severity PIC S9(4) BINARY. 04 Msg-No PIC S9(4) BINARY. 03 Case-2-Condition-ID REDEFINES Case-1-Condition-ID. 04 Class-Code PIC S9(4) BINARY. 04 Cause-Code PIC S9(4) BINARY. 03 Case-Sev-Ctl PIC X. 03 Facility-ID PIC XXX. 02 I-S-Info PIC S9(9) BINARY. PROCEDURE DIVISION. PARA-CBLDATM. ************************************************* ** Call CEESECS to convert timestamp of 6/2/88 ** ** at 10:23:45 AM to Lilian representation ** ************************************************* MOVE 20 TO Vstring-length of IN-DATE. MOVE "06/02/88 10:23:45 AM" TO Vstring-text of IN-DATE. MOVE 20 TO Vstring-length of PICSTR. MOVE "MM/DD/YY HH:MI:SS AP" TO Vstring-text of PICSTR. CALL "CEESECS" USING IN-DATE, PICSTR, SECONDS, FC. ************************************************* ** If CEESECS runs successfully, display result** ************************************************* IF CEE000 of FC THEN DISPLAY Vstring-text of IN-DATE " is Lilian second: " SECONDS ELSE DISPLAY "CEESECS failed with msg " Msg-No of FC UPON CONSOLE STOP RUN END-IF. ************************************************* ** Specify desired format of the output. ** ************************************************* MOVE 35 TO Vstring-length OF PICSTR. MOVE "ZD Mmmmmmmmmmmmmmz YYYY at HH:MI:SS" TO Vstring-text OF PICSTR. ************************************************* ** Call CEEDATM to convert Lilian seconds to ** ** a character timestamp ** ************************************************* CALL "CEEDATM" USING SECONDS, PICSTR, TIMESTP, FC. ************************************************* ** If CEEDATM runs successfully, display result** ************************************************* IF CEE000 of FC THEN DISPLAY "Input seconds of " SECONDS " corresponds to: " TIMESTP ELSE DISPLAY "CEEDATM failed with msg " Msg-No of FC UPON CONSOLE STOP RUN END-IF. GOBACK.
- Following is an example of CEEDATM called by PL/I.
*PROCESS MACRO; /*Module/File Name: IBMDATM /****************************************************/ /** **/ /** Function: CEEDATM - Convert seconds to **/ /** character timestamp **/ /** **/ /** In this example, CEEDATM is called to convert **/ /** the number of seconds since 00:00:00 14 **/ /** October 1582 to the character format specified **/ /** in PICSTR. **/ /** **/ /****************************************************/ PLIDATM: PROC OPTIONS(MAIN); %INCLUDE CEEIBMAW; %INCLUDE CEEIBMCT; DCL SECONDS REAL FLOAT DECIMAL(16); DCL PICSTR CHAR(255) VARYING; DCL TIMESTP CHAR(80); DCL 01 FC, /* Feedback token */ 03 MsgSev REAL FIXED BINARY(15,0), 03 MsgNo REAL FIXED BINARY(15,0), 03 Flags, 05 Case BIT(2), 05 Severity BIT(3), 05 Control BIT(3), 03 FacID CHAR(3), /* Facility ID */ 03 ISI /* Instance-Specific Information */ REAL FIXED BINARY(31,0); SECONDS = 13166064060; /* Input is Lilian seconds*/ PICSTR = 'ZD Mmmmmmmmmmmmmmz YYYY'; /* Picture */ /* string describing desired output format */ /* Call CEEDATM to convert Lilian seconds to */ /* format specified in PICSTR */ CALL CEEDATM ( SECONDS , PICSTR , TIMESTP , FC ); /* If CEEDATM ran successfully, print result */ IF FBCHECK( FC, CEE000) THEN DO; PUT SKIP LIST( 'Input Lilian seconds correspond to ' || TIMESTP); END; ELSE DO; DISPLAY( 'CEEDATM failed with msg ' || FC.MsgNo ); STOP; END; END PLIDATM;
Table 1 shows the sample output of CEEDATM.
input_seconds | picture_string | output_timestamp |
---|---|---|
12,799,191,601.000 |
|
|
12,799,191,661.986 |
|
|
12,799,191,662.009 |
|
|