Class UTCScale
- java.lang.Object
-
- org.orekit.time.UTCScale
-
- All Implemented Interfaces:
Serializable
,TimeScale
public class UTCScale extends Object implements TimeScale
Coordinated Universal Time.UTC is related to TAI using step adjustments from time to time according to IERS (International Earth Rotation Service) rules. Before 1972, these adjustments were piecewise linear offsets. Since 1972, these adjustments are piecewise constant offsets, which require introduction of leap seconds.
Leap seconds are always inserted as additional seconds at the last minute of the day, pushing the next day forward. Such minutes are therefore more than 60 seconds long. In theory, there may be seconds removal instead of seconds insertion, but up to now (2010) it has never been used. As an example, when a one second leap was introduced at the end of 2005, the UTC time sequence was 2005-12-31T23:59:59 UTC, followed by 2005-12-31T23:59:60 UTC, followed by 2006-01-01T00:00:00 UTC.
This is intended to be accessed thanks to the
TimeScalesFactory
class, so there is no public constructor.- Author:
- Luc Maisonobe
- See Also:
AbsoluteDate
, Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AbsoluteDate
getFirstKnownLeapSecond()
Get the date of the first known leap second.AbsoluteDate
getLastKnownLeapSecond()
Get the date of the last known leap second.double
getLeap(AbsoluteDate date)
Get the value of the previous leap.<T extends org.hipparchus.RealFieldElement<T>>
TgetLeap(FieldAbsoluteDate<T> date)
Get the value of the previous leap.String
getName()
Get the name time scale.boolean
insideLeap(AbsoluteDate date)
Check if date is within a leap second introduction in this time scale.<T extends org.hipparchus.RealFieldElement<T>>
booleaninsideLeap(FieldAbsoluteDate<T> date)
Check if date is within a leap second introduction in this time scale.int
minuteDuration(AbsoluteDate date)
Check length of the current minute in this time scale.<T extends org.hipparchus.RealFieldElement<T>>
intminuteDuration(FieldAbsoluteDate<T> date)
Check length of the current minute in this time scale.double
offsetFromTAI(AbsoluteDate date)
Get the offset to convert locations fromTAIScale
to instance.<T extends org.hipparchus.RealFieldElement<T>>
ToffsetFromTAI(FieldAbsoluteDate<T> date)
Get the offset to convert locations fromTAIScale
to instance.double
offsetToTAI(DateComponents date, TimeComponents time)
Get the offset to convert locations from instance toTAIScale
.String
toString()
-
-
-
Method Detail
-
offsetFromTAI
public double offsetFromTAI(AbsoluteDate date)
Get the offset to convert locations fromTAIScale
to instance.- Specified by:
offsetFromTAI
in interfaceTimeScale
- Parameters:
date
- conversion date- Returns:
- offset in seconds to add to a location in
TAIScale
time scale to get a location in instance time scale - See Also:
TimeScale.offsetToTAI(DateComponents, TimeComponents)
-
offsetFromTAI
public <T extends org.hipparchus.RealFieldElement<T>> T offsetFromTAI(FieldAbsoluteDate<T> date)
Get the offset to convert locations fromTAIScale
to instance.- Specified by:
offsetFromTAI
in interfaceTimeScale
- Type Parameters:
T
- type of the filed elements- Parameters:
date
- conversion date- Returns:
- offset in seconds to add to a location in
TAIScale
time scale to get a location in instance time scale - See Also:
TimeScale.offsetToTAI(DateComponents, TimeComponents)
-
offsetToTAI
public double offsetToTAI(DateComponents date, TimeComponents time)
Get the offset to convert locations from instance toTAIScale
.- Specified by:
offsetToTAI
in interfaceTimeScale
- Parameters:
date
- date location in the time scaletime
- time location in the time scale- Returns:
- offset in seconds to add to a location in instance time scale
to get a location in
TAIScale
time scale - See Also:
TimeScale.offsetFromTAI(AbsoluteDate)
-
getName
public String getName()
Get the name time scale.
-
getFirstKnownLeapSecond
public AbsoluteDate getFirstKnownLeapSecond()
Get the date of the first known leap second.- Returns:
- date of the first known leap second
-
getLastKnownLeapSecond
public AbsoluteDate getLastKnownLeapSecond()
Get the date of the last known leap second.- Returns:
- date of the last known leap second
-
insideLeap
public boolean insideLeap(AbsoluteDate date)
Check if date is within a leap second introduction in this time scale.This method will return false for all time scales that do not implement leap seconds, even if the date corresponds to a leap second in
UTC scale
.- Specified by:
insideLeap
in interfaceTimeScale
- Parameters:
date
- date to check- Returns:
- true if time is within a leap second introduction
-
insideLeap
public <T extends org.hipparchus.RealFieldElement<T>> boolean insideLeap(FieldAbsoluteDate<T> date)
Check if date is within a leap second introduction in this time scale.This method will return false for all time scales that do not implement leap seconds, even if the date corresponds to a leap second in
UTC scale
.- Specified by:
insideLeap
in interfaceTimeScale
- Type Parameters:
T
- type of the filed elements- Parameters:
date
- date to check- Returns:
- true if time is within a leap second introduction
-
minuteDuration
public int minuteDuration(AbsoluteDate date)
Check length of the current minute in this time scale.This method will return 60 for all time scales that do not implement leap seconds, even if the date corresponds to a leap second in
UTC scale
, and 61 for time scales that do implement leap second when the current date is within the last minute before the leap, or during the leap itself.- Specified by:
minuteDuration
in interfaceTimeScale
- Parameters:
date
- date to check- Returns:
- 60 or 61 depending on leap seconds introduction
-
minuteDuration
public <T extends org.hipparchus.RealFieldElement<T>> int minuteDuration(FieldAbsoluteDate<T> date)
Check length of the current minute in this time scale.This method will return 60 for all time scales that do not implement leap seconds, even if the date corresponds to a leap second in
UTC scale
, and 61 for time scales that do implement leap second when the current date is within the last minute before the leap, or during the leap itself.- Specified by:
minuteDuration
in interfaceTimeScale
- Type Parameters:
T
- type of the filed elements- Parameters:
date
- date to check- Returns:
- 60 or 61 depending on leap seconds introduction
-
getLeap
public double getLeap(AbsoluteDate date)
Get the value of the previous leap.This method will return 0.0 for all time scales that do not implement leap seconds.
-
getLeap
public <T extends org.hipparchus.RealFieldElement<T>> T getLeap(FieldAbsoluteDate<T> date)
Get the value of the previous leap.This method will return 0.0 for all time scales that do not implement leap seconds.
-
-