Package org.esa.snap.core.util
Class DateTimeUtils
java.lang.Object
org.esa.snap.core.util.DateTimeUtils
This utility class provides some date/time related methods.
- Version:
- $Revision$ $Date$
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleThe number of hours per day.static final SimpleDateFormatAn ISO 8601 date/time format.static final SimpleDateFormatstatic final doubleThe number of days from noon Jan 1, 4713 BC (Proleptic Julian) to midnight 1/1/1970 AD (Gregorian).static final doubleThe number of micro-seconds per day.static final doubleThe number of milli-seconds per day.static final doubleThe Modified Julian Day (MJD) gives the number of days since midnight on November 17, 1858.static final doubleThe number of seconds per day. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic DateComputes the median (average) of two dates.static ProductData.UTCaverage(ProductData.UTC startDate, ProductData.UTC endDate) Computes the median (average) of twoProductData.UTCdata structures.static LocalDateTimeConverts a UTC date/time calendar to a LocalDateTime.static doublejdToMJD(double jd) Converts a julian day (JD) to a modified julian day (MJD) value.static DatejdToUTC(double jd) Converts a julian day (JD) to a UTC date/time value.static doublemjdToJD(double mjd) Converts a modified julian day (MJD) to a julian day (JD) value.static ProductData.UTCUtility method for returning aProductData.UTCdate from a string using the given date format.static DatestringToUTC(String utc) Converts a UTC date/time string to a UTC date/time value.static doubleConverts a UTC date/time value to a julian day (JD).static StringutcToString(Date utc) Converts a UTC date/time value to a string.
-
Field Details
-
ISO_8601_FORMAT
An ISO 8601 date/time format. This does not give UTC times. -
ISO_8601_UTC_FORMAT
-
JD_OFFSET
public static final double JD_OFFSETThe 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_OFFSETThe Modified Julian Day (MJD) gives the number of days since midnight on November 17, 1858. This date corresponds toMJD_OFFSET = 2400000.5days after day zero of the Julian calendar.- See Also:
-
HOURS_PER_DAY
public static final double HOURS_PER_DAYThe number of hours per day.- See Also:
-
SECONDS_PER_DAY
public static final double SECONDS_PER_DAYThe number of seconds per day.- See Also:
-
MILLIS_PER_DAY
public static final double MILLIS_PER_DAYThe number of milli-seconds per day.- See Also:
-
MICROS_PER_DAY
public static final double MICROS_PER_DAYThe 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
Converts a julian day (JD) to a UTC date/time value.Important note: Due to the limitations of
java.util.Datethis method does not take leap seconds into account.- Parameters:
jd- the julian day- Returns:
- the UTC date/time
-
utcToJD
Converts a UTC date/time value to a julian day (JD).Important note: Due to the limitations of
java.util.Datethis method does not take leap seconds into account.- Parameters:
utc- the UTC date/time, ifnullthe current time is converted- Returns:
- the julian day
-
utcToString
Converts a UTC date/time value to a string. The method uses the ISO 8601 date/time formatYYYY-MM-DD hh:mm:ss.SImportant note: Due to the limitations of
java.util.Datethis method does not take leap seconds into account.- Parameters:
utc- the UTC date/time value- Returns:
- the UTC date/time string
-
stringToUTC
Converts a UTC date/time string to a UTC date/time value. The method uses the ISO 8601 date/time formatYYYY-MM-DD hh:mm:ss.S.Important note: Due to the limitations of
java.util.Datethis method does not take leap seconds into account.- Parameters:
utc- the UTC date/time string- Throws:
ParseException
-
calendarToLocalDateTime
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
Computes the median (average) of two dates. This method handles the possible overflow that can occur.- Parameters:
startDate- The first dateendDate- The second date- Returns:
- The date between the two input dates
-
average
Computes the median (average) of twoProductData.UTCdata structures.- Parameters:
startDate- The first dateendDate- The second date- Returns:
- The date between the two input dates
-
parseDate
Utility method for returning aProductData.UTCdate from a string using the given date format. Why not usingProductData.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 datedateFormat- The format of the string date- Returns:
- The UTC date representation.
-