Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
utc2et

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     UTC2ET ( UTC to Ephemeris Time )

     SUBROUTINE UTC2ET ( UTCSTR, ET )

Abstract

     Convert an input time from Calendar or Julian Date format, UTC,
     to ephemeris seconds past J2000.

Required_Reading

     KERNEL
     TIME

Keywords

     TIME

Declarations

     IMPLICIT NONE

     CHARACTER*(*)       UTCSTR
     DOUBLE PRECISION    ET

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     UTCSTR     I   Input time string, UTC.
     ET         O   Output epoch, ephemeris seconds past J2000.

Detailed_Input

     UTCSTR   is an input time string, containing a Calendar or Julian
              Date, UTC. Any input string acceptable to the SPICELIB
              routine TPARTV are acceptable to UTC2ET. The length of
              UTCSTR should not exceed 80 characters.

Detailed_Output

     ET       is the equivalent of UTCSTR, expressed in ephemeris
              seconds past J2000. If an error occurs, or if the
              input string is ambiguous, ET is not changed.

Parameters

     None.

Exceptions

     1)  If the input time string is ambiguous, the error
         SPICE(INVALIDTIMESTRING) is signaled.

     2)  This routine does not attempt to account for variations
         in the length of the second that were in effect prior
         to Jan 1, 1972. For days prior to that date, we assume
         there are exactly 86400 ephemeris seconds.

Files

     None.

Particulars

     Note: NAIF recommends the use of STR2ET instead of UTC2ET.

     This routine handles that task of converting strings
     representing epochs in the UTC system to ephemeris seconds
     (TDB) past the epoch of the J2000 frame.

     Although this routine is intended primarily for the
     conversion of epochs during the "space age" it may also
     be used to convert much earlier epochs. However, before
     using this routine to convert epochs prior to 1972
     you must be sure that the assumptions made by in the
     implementation are consistent with the accuracy of
     the input calendar string.

     As noted in the $Exceptions section, this routine does not attempt
     to account for variations in the length of the second that were
     used prior to Jan 1, 1972. Instead each "UTC" day prior to
     Jan 1, 1972 is assumed to have exactly 86400 TDT seconds.

     Ancient Epochs
     --------------

     The calendar used today, the Gregorian calendar, has its
     initial epoch on 15 October, 1582. Prior to that epoch the
     Julian calendar was used for the recording of epochs.
     October 15, 1582 (Gregorian) corresponds to
     October 05, 1582 (Julian). From the point of view of the
     implementation of this routine, all epochs belong to the
     Gregorian calendar extended indefinitely backward in time.
     If you need to obtain ephemeris seconds past the J2000 epoch
     from Julian Calendar strings, we suggest that
     you make use of the SPICELIB routine STR2ET.

Examples

     The numerical results shown for these examples may differ across
     platforms. The results depend on the SPICE kernels used as
     input, the compiler and supporting libraries, and the machine
     specific arithmetic implementation.

     1) Below is a sampling of some of the time formats that
        are acceptable as inputs to UTC2ET. A complete discussion
        of permissible formats is given in the SPICELIB routine
        TPARTV as well as the User's reference file time.req
        located in the "doc" directory of the toolkit.


        ISO (T) Formats (with or without trailing "Z").

        String                        Year Mon  DOY DOM  HR Min Sec
        ----------------------------  ---- ---  --- ---  -- --- ------
        1996-12-18T12:28:28           1996 Dec   na  18  12  28 28
        1986-01-18T12                 1986 Jan   na  18  12  00 00
        1986-01-18T12:19              1986 Jan   na  18  12  19 00
        1986-01-18T12:19:52.18Z       1986 Jan   na  18  12  19 52.18
        1995-08T18:28:12Z             1995  na  008  na  18  28 12
        1995-18T                      1995  na  018  na  00  00 00
        0000-01-01T                   1 BC Jan   na  01  00  00 00


        Calendar Formats.

        String                        Year   Mon DOM  HR Min  Sec
        ----------------------------  ----   --- ---  -- ---  ------
        Tue Aug  6 11:10:57  1996     1996   Aug  06  11  10  57
        1 DEC 1997 12:28:29.192       1997   Dec  01  12  28  29.192
        2/3/1996 17:18:12.002         1996   Feb  03  17  18  12.002
        Mar 2 12:18:17.287 1993       1993   Mar  02  12  18  17.287
        1992 11:18:28  3 Jul          1992   Jul  03  11  18  28
        June 12, 1989 01:21           1989   Jun  12  01  21  00
        1978/3/12 23:28:59.29         1978   Mar  12  23  28  59.29
        17JUN1982 18:28:28            1982   Jun  17  18  28  28
        13:28:28.128 1992 27 Jun      1992   Jun  27  13  28  28.128
        1972 27 jun 12:29             1972   Jun  27  12  29  00
        '93 Jan 23 12:29:47.289       1993*  Jan  23  12  29  47.289
        27 Jan 3, 19:12:28.182        2027*  Jan  03  19  12  28.182
        23 A.D. APR 4, 18:28:29.29    0023** Apr  04  18  28  29.29
        18 B.C. Jun 3, 12:29:28.291   -017** Jun  03  12  29  28.291
        29 Jun  30 12:29:29.298       2029+  Jun  30  12  29  29.298
        29 Jun '30 12:29:29.298       2030*  Jun  29  12  29  29.298


        Day of Year Formats

        String                        Year  DOY HR Min Sec
        ----------------------------  ----  --- -- --- ------
        1997-162::12:18:28.827        1997  162 12  18 28.827
        162-1996/12:28:28.287         1996  162 12  28 28.287
        1993-321/12:28:28.287         1993  231 12  28 28.287
        1992 183// 12 18 19           1992  183 12  18 19
        17:28:01.287 1992-272//       1992  272 17  28 01.287
        17:28:01.282 272-1994//       1994  272 17  28 01.282
        '92-271/ 12:28:30.291         1992* 271 12  28 30.291
        92-182/ 18:28:28.281          1992* 182 18  28 28.281
        182-92/ 12:29:29.192          0182+ 092 12  29 29.192
        182-'92/ 12:28:29.182         1992  182 12  28 29.182


        Julian Date Strings

        jd 28272.291                  Julian Date   28272.291
        2451515.2981 (JD)             Julian Date 2451515.2981
        2451515.2981 JD               Julian Date 2451515.2981

                                      Abbreviations Used in Tables

                                         na    --- Not Applicable
                                         Mon   --- Month
                                         DOY   --- Day of Year
                                         DOM   --- Day of Month
                                         Wkday --- Weekday
                                         Hr    --- Hour
                                         Min   --- Minutes
                                         Sec   --- Seconds

        *  The default interpretation of a year that has been
           abbreviated with a leading quote as in 'xy (such as '92) is
           to treat the year as 19xy if xy > 68 and to treat it is
           20xy otherwise. Thus '69 is interpreted as 1969 and '68 is
           treated as 2068. However, you may change the "split point"
           and centuries through use of the SPICELIB routine TSETYR
           which is an entry point in the SPICELIB module TEXPYR. See
           that routine for a discussion of how you may reset the
           split point.

        ** All epochs are regarded as belonging to the Gregorian
           calendar. We formally extend the Gregorian calendar
           backward and forward in time for all epochs. If you have
           epochs belonging to the Julian Calendar, consult the
           SPICELIB routines TPARTV and JUL2GR for a discussion
           concerning conversions to the Gregorian calendar and ET.

        +  When a day of year format or calendar format string is
           input and neither of the integer components of the date is
           greater than 1000, the first integer is regarded as being
           the year.

     2) Convert a calendar date in UTC string format to Julian
        Ephemeris date.

        Use the LSK kernel below to load the leap seconds and time
        constants required for the conversions.

           naif0012.tls


        Example code begins here.


              PROGRAM UTC2ET_EX1
              IMPLICIT NONE

        C
        C     SPICELIB functions
        C
              DOUBLE PRECISION      UNITIM

        C
        C     Local constants.
        C
              CHARACTER*(*)         UTCSTR
              PARAMETER           ( UTCSTR = 'Dec 19 2003  16:48:00' )

        C
        C     Local variables.
        C
              DOUBLE PRECISION      ET
              DOUBLE PRECISION      JED

        C
        C     Load the LSK file.
        C
              CALL FURNSH ( 'naif0012.tls' )

        C
        C     Convert input UTC string to Ephemeris Time.
        C
              CALL UTC2ET ( UTCSTR, ET )
              WRITE(*,'(2A)') 'UTC time             : ', UTCSTR
              WRITE(*,'(A,F22.9)') 'Ephemeris time       :', ET

        C
        C     Convert the Ephemeris Time to Julian ephemeris date,
        C     i.e. Julian date relative to TDB time scale.
        C
              JED = UNITIM( ET, 'ET', 'JED' )
              WRITE(*,'(A,F22.9)') 'Julian Ephemeris Date:', JED

              END


        When this program was executed on a Mac/Intel/gfortran/64-bit
        platform, the output was:


        UTC time             : Dec 19 2003  16:48:00
        Ephemeris time       :   125124544.183560610
        Julian Ephemeris Date:     2452993.200742865

Restrictions

     1)  The conversion between ET and UTC depends on the values in the
         input kernel pool. The kernel pool should be loaded prior to
         calling this routine.

     2)  Before using this routine for epochs prior to Jan 1, 1972
         be sure to check the $Particulars section to make sure
         that the assumptions made in this routine are consistent
         with the accuracy you require for your application.

Literature_References

     [1]  J. Jespersen and J. Fitz-Randolph, "From Sundials to Atomic
          Clocks, Understanding Time and Frequency," Dover
          Publications, Inc. New York, 1982.

Author_and_Institution

     J. Diaz del Rio    (ODC Space)
     W.M. Owen          (JPL)
     W.L. Taber         (JPL)
     I.M. Underwood     (JPL)
     E.D. Wright        (JPL)

Version

    SPICELIB Version 2.1.1, 13-AUG-2021 (JDR) (EDW)

        Header edits to expand description of ISO format.

        Edited the header to comply with NAIF standard. Added complete
        code example.

        Added note to $Particulars section.

    SPICELIB Version 2.1.0, 05-JAN-1998 (WLT)

        Comments concerning the default century for abbreviated
        years were updated to reflect changes to TEXPYR.

    SPICELIB Version 2.0.0, 20-NOV-1996 (WLT)

        About the only thing that is the same in this routine
        from the previous editions, is that the interface is
        unchanged. Nearly everything else has been modified.
        The routine was modified to make use of TPARTV
        and TTRANS to handle the task of parsing and
        computing seconds past 2000 TDB. This version
        now handles leap seconds correctly.

    SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)

        Comment section for permuted index source lines was added
        following the header.

    SPICELIB Version 1.0.0, 31-JAN-1990 (WMO) (IMU)
Fri Dec 31 18:37:04 2021