Library /sys$common/syshlp/helplib.hlb  —  DECdts  utc_vmsgmtime, Example
    The following example shows the following time zone and time
    format conversions:

    1. Retrieve a binary timestamp representing UTC with the
       sys$getutc system service.

    2. Convert the binary timestamp to a OpenVMS format binary time
       representing GMT

    3. Convert the OpenVMS format binary time representing GMT back
       to a UTC-based binary timestamp with a TDF of 0 (zero)

    4. Convert the UTC-based binary time to a binary OpenVMS format
       time representing the local time; use the TDF from the system

    /*****
      start example vmsgmtime, mkvmsgmtime, vmslocaltime
     *****/
    #include <utc.h>

    main()
    {
    int status;
    struct utc utcTime;
    int vmsTime[2];

     if (!((status=SYS$GETUTC(&utcTime))&1))
         exit(status);              /* read curr time as a utc */

    /*
     * convert the utcvalue into a vms time, with a timezone of 0
     * (GMT).  Printing the resultant vmstime yields the time at
     * the prime meridian in Greenwich, not (necessarily) the
     * local time.
     */
     if (utc_vmsgmtime(vmsTime,&utcTime))
        exit(1);

    /*
     * Convert the vmstime (which is in GMT) to a utc
     */
    if (utc_mkvmsgmtime(&utcTime, vmsTime))
        exit(2);

    /*
     *  convert the UTC to local 64-bit time.  Note that this is the
     *  value we would have read if we had issued a 'SYS$GETTIM' in
     *  the initial statement.
     */
    if (utc_vmslocaltime(vmsTime, &utcTime))
        exit(3);
    }
    /*****
     end example
     *****/
Close Help