CEEGMTO—Get offset from Greenwich Mean Time to local time

CEEGMTO returns values to the calling routine representing the difference between the local system time and Greenwich Mean Time (GMT).

Read syntax diagramSkip visual syntax diagram
Syntax

>>-CEEGMTO--(--offset_hours--,--offset_minutes--,--------------->

>--offset_seconds--,--fc--)------------------------------------><

offset_hours (output)
A 32-bit binary integer representing the offset from GMT to local time, in hours. For example, for Pacific Standard Time, offset_hours equals -8. If local time offset is not available, offset_hours equals 0 and CEEGMTO terminates with a non-CEE000 symbolic feedback code.
offset_minutes (output)
A 32-bit binary integer representing the number of additional minutes that local time is ahead of or behind GMT. The range of offset_minutes is 0 to 59. If the local time offset is not available, offset_minutes equals 0 and CEEGMTO terminates with a non-CEE000 symbolic feedback code.
offset_seconds (output)
A 64-bit double floating-point number representing the offset from GMT to local time, in seconds. For example, Pacific Standard Time is eight hours behind GMT. If local time is in the Pacific time zone during standard time, CEEGMTO would return -28,800 (-8 * 60 * 60). offset_seconds can be used with CEEGMT to calculate local date and time. See CEEGMT—Get current Greenwich Mean Time for more information.
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.
CEE2E7 3 2503 The offset from UTC/GMT to local time was not available from the system.

Usage notes

  • CEEDATM is used to convert number of seconds to a character timestamp.
  • CICS® consideration—CEEGMTO does not use the OS TIME macro.
  • z/OS UNIX consideration—In multithread applications, CEEGMTO affects only the calling thread.

For more information

Examples

  1. An example of CEEGMTO called by C/C++:
    /*Module/File Name: EDCGMTO   */
    
    #include <string.h>
    #include <stdio.h>
    #include <leawi.h>
    #include <stdlib.h>
    #include <ceeedcct.h>
    
    int main(void) {
    
      _FEEDBACK fc;
      _INT4     GMT_hours,GMT_mins;
      _FLOAT8   GMT_secs;
    
      CEEGMTO(&GMT_hours,&GMT_mins,&GMT_secs,&fc);
      if ( _FBCHECK ( fc , CEE000 ) != 0 ) {
         printf("CEEGMTO failed with message number %d\n",
                fc.tok_msgno);
         exit(2999);
      }
      printf("The difference between GMT and the local ");
      printf("time is:\n");
      printf("%d hours, %d minutes\n",GMT_hours,GMT_mins);
    }
  2. An example of CEEGMTO called by COBOL:
    CBL LIB,QUOTE
          *Module/File Name: IGZTGMTO
          *************************************************
          **                                             **
          ** IGZTGMTO - Call CEEGMTO to get offset from  **
          **            Greenwich Mean Time to local     **
          **            time                             **
          **                                             **
          ** In this example, a call is made to CEEGMTO  **
          ** to return the offset from GMT to local time **
          ** as separate binary integers representing    **
          ** offset hours, minutes, and seconds. The     **
          ** results are displayed.                      **
          **                                             **
          *************************************************
           IDENTIFICATION DIVISION.
           PROGRAM-ID. IGZTGMTO.
    
           DATA DIVISION.
           WORKING-STORAGE SECTION.
           01  HOURS                   PIC S9(9) BINARY.
           01  MINUTES                 PIC S9(9) BINARY.
           01  SECONDS COMP-2.
           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-CBLGMTO.
               CALL "CEEGMTO" USING HOURS , MINUTES ,
                   SECONDS , FC.
    
               IF CEE000 of FC  THEN
                   DISPLAY "Local time differs from GMT "
                       "by: " HOURS " hours, "
                       MINUTES " minutes, and "
                       SECONDS " seconds. "
               ELSE
                   DISPLAY "CEEGMTO failed with msg "
                       Msg-No of FC UPON CONSOLE
                   STOP RUN
               END-IF.
    
               GOBACK.
  3. An example of CEEGMTO called by PL/I:
    *PROCESS MACRO;
     /* Module/File Name: IBMGMTO                        */
     /****************************************************/
     /**                                                **/
     /** Function: CEEGMTO - get the offset from        **/
     /**                     Greenwich Mean Time        **/
     /**                     to local time              **/
     /**                                                **/
     /****************************************************/
     PLIGMTO: PROC OPTIONS(MAIN);
    
        %INCLUDE  CEEIBMAW;
        %INCLUDE  CEEIBMCT;
    
        DCL HOURS REAL FIXED BINARY(31,0);
        DCL MINUTES REAL FIXED BINARY(31,0);
        DCL SECONDS REAL FLOAT DECIMAL(16);
        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);
    
       /* Call CEEGMTO to return hours, minutes, and     */
       /* seconds that local time is offset from GMT     */
    
        CALL CEEGMTO ( HOURS, MINUTES, SECONDS, FC );
    
       /* If CEEGMTO ran successfully, print results     */
        IF  FBCHECK( FC, CEE000)  THEN  DO;
           PUT SKIP EDIT('The difference between GMT and '
                 || 'local time is ', HOURS, ':', MINUTES )
              (A, P'S99', A, P'99' );
           END;
        ELSE  DO;
           DISPLAY( 'CEEGMTO failed with msg '
              || FC.MsgNo );
           STOP;
           END;
    
     END PLIGMTO;