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 double
The number of hours per day.static final SimpleDateFormat
An ISO 8601 date/time format.static final SimpleDateFormat
static final double
The number of days from noon Jan 1, 4713 BC (Proleptic Julian) to midnight 1/1/1970 AD (Gregorian).static final double
The number of micro-seconds per day.static final double
The number of milli-seconds per day.static final double
The Modified Julian Day (MJD) gives the number of days since midnight on November 17, 1858.static final double
The number of seconds per day. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Date
Computes the median (average) of two dates.static ProductData.UTC
average
(ProductData.UTC startDate, ProductData.UTC endDate) Computes the median (average) of twoProductData.UTC
data structures.static LocalDateTime
Converts a UTC date/time calendar to a LocalDateTime.static double
jdToMJD
(double jd) Converts a julian day (JD) to a modified julian day (MJD) value.static Date
jdToUTC
(double jd) Converts a julian day (JD) to a UTC date/time value.static double
mjdToJD
(double mjd) Converts a modified julian day (MJD) to a julian day (JD) value.static ProductData.UTC
Utility method for returning aProductData.UTC
date from a string using the given date format.static Date
stringToUTC
(String utc) Converts a UTC date/time string to a UTC date/time value.static double
Converts a UTC date/time value to a julian day (JD).static String
utcToString
(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.5
days 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.Date
this 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.Date
this method does not take leap seconds into account.- Parameters:
utc
- the UTC date/time, ifnull
the 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.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
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.Date
this 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.UTC
data structures.- Parameters:
startDate
- The first dateendDate
- The second date- Returns:
- The date between the two input dates
-
parseDate
Utility method for returning aProductData.UTC
date 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.
-