Class DateTimeUtils


  • public class DateTimeUtils
    extends Object
    This utility class provides some date/time related methods.
    Version:
    $Revision$ $Date$
    See Also:
    Date
    • Field Detail

      • ISO_8601_FORMAT

        public static final SimpleDateFormat ISO_8601_FORMAT
        An ISO 8601 date/time format. This does not give UTC times.
      • JD_OFFSET

        public static final double JD_OFFSET
        The number of days from noon Jan 1, 4713 BC (Proleptic Julian) to midnight 1/1/1970 AD (Gregorian). 1/1/1970 is time zero for a java.util.Date.
        See Also:
        Constant Field Values
      • MJD_OFFSET

        public static final double MJD_OFFSET
        The Modified Julian Day (MJD) gives the number of days since midnight on November 17, 1858. This date corresponds to MJD_OFFSET = 2400000.5 days after day zero of the Julian calendar.
        See Also:
        Constant Field Values
      • HOURS_PER_DAY

        public static final double HOURS_PER_DAY
        The number of hours per day.
        See Also:
        Constant Field Values
      • SECONDS_PER_DAY

        public static final double SECONDS_PER_DAY
        The number of seconds per day.
        See Also:
        Constant Field Values
      • MILLIS_PER_DAY

        public static final double MILLIS_PER_DAY
        The number of milli-seconds per day.
        See Also:
        Constant Field Values
      • MICROS_PER_DAY

        public static final double MICROS_PER_DAY
        The number of micro-seconds per day.
        See Also:
        Constant Field Values
    • Constructor Detail

      • DateTimeUtils

        public DateTimeUtils()
    • Method Detail

      • jdToMJD

        public static double jdToMJD​(double jd)
        Converts a julian day (JD) to a modified julian day (MJD) value.
        Parameters:
        jd - the julian day
        Returns:
        the modified julian day
      • mjdToJD

        public static double mjdToJD​(double mjd)
        Converts a modified julian day (MJD) to a julian day (JD) value.
        Parameters:
        mjd - the modified julian day
        Returns:
        the julian day
      • jdToUTC

        public static Date jdToUTC​(double jd)
        Converts a julian day (JD) to a UTC date/time value.

        Important note: Due to the limitations of java.util.Date this method does not take leap seconds into account.

        Parameters:
        jd - the julian day
        Returns:
        the UTC date/time
      • utcToJD

        public static double utcToJD​(Date utc)
        Converts a UTC date/time value to a julian day (JD).

        Important note: Due to the limitations of java.util.Date this method does not take leap seconds into account.

        Parameters:
        utc - the UTC date/time, if null the current time is converted
        Returns:
        the julian day
      • utcToString

        public static String utcToString​(Date utc)
        Converts a UTC date/time value to a string. The method uses the ISO 8601 date/time format YYYY-MM-DD hh:mm:ss.S

        Important note: Due to the limitations of java.util.Date this method does not take leap seconds into account.

        Parameters:
        utc - the UTC date/time value
        Returns:
        the UTC date/time string
      • stringToUTC

        public static Date stringToUTC​(String utc)
                                throws ParseException
        Converts a UTC date/time string to a UTC date/time value. The method uses the ISO 8601 date/time format YYYY-MM-DD hh:mm:ss.S.

        Important note: Due to the limitations of java.util.Date this method does not take leap seconds into account.

        Parameters:
        utc - the UTC date/time string
        Throws:
        ParseException
      • calendarToLocalDateTime

        public static LocalDateTime calendarToLocalDateTime​(Calendar utc)
        Converts a UTC date/time calendar to a LocalDateTime. The method interpretes this UTC value as a MJD 2000 date (Modified Julian Day where the first day is the 01.01.2000).
        Parameters:
        utc - the UTC date/time calendar
      • average

        public static Date average​(Date startDate,
                                   Date endDate)
        Computes the median (average) of two dates. This method handles the possible overflow that can occur.
        Parameters:
        startDate - The first date
        endDate - The second date
        Returns:
        The date between the two input dates
      • average

        public static ProductData.UTC average​(ProductData.UTC startDate,
                                              ProductData.UTC endDate)
        Computes the median (average) of two ProductData.UTC data structures.
        Parameters:
        startDate - The first date
        endDate - The second date
        Returns:
        The date between the two input dates
      • parseDate

        public static ProductData.UTC parseDate​(String stringData,
                                                String dateFormat)
        Utility method for returning a ProductData.UTC date from a string using the given date format. Why not using ProductData.UTC.parse(text, pattern) method? Because it errors in the case of a format like dd-MM-yyyy'T'HH:mm:ss.SSSSSS (which should be perfectly fine).
        Parameters:
        stringData - The string to be converted into a date
        dateFormat - The format of the string date
        Returns:
        The UTC date representation.