Class DateTimeUtils

java.lang.Object
org.esa.snap.core.util.DateTimeUtils

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

    • ISO_8601_FORMAT

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

      public static final SimpleDateFormat ISO_8601_UTC_FORMAT
    • 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:
    • 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:
    • HOURS_PER_DAY

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

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

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

      public static final double MICROS_PER_DAY
      The number of micro-seconds per day.
      See Also:
  • Constructor Details

    • DateTimeUtils

      public DateTimeUtils()
  • Method Details

    • 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.