public class TimeComponents extends Object implements Serializable, Comparable<TimeComponents>
此类的实例保证是不可变的。
DateComponents
, DateTimeComponents
, Serialized Form
Modifier and Type | Field and Description |
---|---|
static TimeComponents |
H00
常用的时间00:00:00的常量。
|
static TimeComponents |
H12
常用的时间12:00:00的常量。
|
Constructor and Description |
---|
TimeComponents(double secondInDay)
从一天内的秒数构建时间。
|
TimeComponents(int secondInDayA, double secondInDayB)
从一天内的秒数构建时间。
|
TimeComponents(int hour, int minute, double second)
从其时钟元素构建时间。
|
TimeComponents(int hour, int minute, double second, int minutesFromUTC)
从其时钟元素构建时间。
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(TimeComponents other) |
boolean |
equals(Object other) |
String |
formatUtcOffset()
以ISO8601格式获取UTC偏移量的字符串。
|
static TimeComponents |
fromSeconds(int secondInDayA, double secondInDayB, double leap, int minuteDuration)
从一天内的秒数构建时间。
|
int |
getHour()
获取小时数。
|
int |
getMinute()
获取分钟数。
|
int |
getMinutesFromUTC()
获取指定日期与UTC之间的偏移量。
|
double |
getSecond()
获取秒数。
|
double |
getSecondsInLocalDay()
获取本地一天内的秒数,不应用 UTC偏移量 。
|
double |
getSecondsInUTCDay()
获取UTC一天内的秒数,应用 UTC偏移量 。
|
int |
hashCode() |
static TimeComponents |
parseTime(String string)
解析ISO-8601格式的字符串以构建时间。
|
String |
toString()
获取包括UTC偏移量的时间的字符串表示。
|
String |
toStringWithoutUtcOffset()
获取不包括UTC偏移量的时间的字符串表示。
|
public static final TimeComponents H00
public static final TimeComponents H12
public TimeComponents(int hour, int minute, double second) throws IllegalArgumentException
请注意,此方法允许60.0(包含)到61.0(不包含)之间的秒数,因为它们在UTC
时间标度中引入闰秒时会出现。
hour
- 从0到23的小时数
minute
- 从0到59的分钟数
second
- 从0.0到61.0(不包含)的秒数
IllegalArgumentException
- 如果给定的参数不一致(参数超出范围)
public TimeComponents(int hour, int minute, double second, int minutesFromUTC) throws IllegalArgumentException
请注意,此方法允许60.0(包含)到61.0(不包含)之间的秒数,因为它们在UTC
时间标度中引入闰秒时会出现。
hour
- 从0到23的小时数
minute
- 从0到59的分钟数
second
- 从0.0到61.0(不包含)的秒数
minutesFromUTC
- 指定日期与UTC之间的偏移量,按照ISO-8601标准,以分钟为单位的整数
IllegalArgumentException
- 如果给定的参数不一致(参数超出范围)
public TimeComponents(double secondInDay) throws OrekitIllegalArgumentException
如果secondInDay
小于60.0
,那么getSecond()
将小于60.0
,否则它将小于61.0
。在负闰秒期间,此构造函数可能会产生getSecond()
的无效值,尽管从未发生过。要更好地控制最后一分钟的秒数,请使用fromSeconds(int, double, double, int)
。
此构造函数始终处于UTC时间(即将返回0
)。
secondInDay
- 从0.0到Constants.JULIAN_DAY
+ 1
(不包含)的秒数
OrekitIllegalArgumentException
- 如果秒数超出范围
fromSeconds(int, double, double, int)
,TimeComponents(int, double)
public TimeComponents(int secondInDayA, double secondInDayB) throws OrekitIllegalArgumentException
这里定义的秒数是总和secondInDayA + secondInDayB
,从0.0到Constants.JULIAN_DAY
+ 1
(不包含)。这两个参数用于增加精度。
如果总和小于60.0
,那么getSecond()
将小于60.0
,否则它将小于61.0
。在负闰秒期间,此构造函数可能会产生getSecond()
的无效值,尽管从未发生过。要更好地控制最后一分钟的秒数,请使用fromSeconds(int, double, double, int)
。
此构造函数始终处于UTC时间(即getMinutesFromUTC()
将返回0)。
secondInDayA
- 秒数的第一部分
secondInDayB
- 秒数的最后一部分
OrekitIllegalArgumentException
- 如果秒数超出范围
fromSeconds(int, double, double, int)
public static TimeComponents fromSeconds(int secondInDayA, double secondInDayB, double leap, int minuteDuration)
午夜后的秒数是总和secondInDayA + secondInDayB + leap
。这两个参数用于增加精度。仅使用总和的第一部分(secondInDayA + secondInDayB
)来计算小时和分钟。第三个参数(leap
)直接添加到秒值(getSecond()
)以实现闰秒。这三个量必须满足以下约束。第一个约束保证小时和分钟有效,第二个约束保证秒数有效。
0 <= secondInDayA + secondInDayB < 86400
0 <= (secondInDayA + secondInDayB) % 60 + leap <= minuteDuration
0 <= leap <= minuteDuration - 60 如果minuteDuration >= 60
0 >= leap >= minuteDuration - 60 如果minuteDuration < 60
如果从secondInDayA + secondInDayB + leap
计算得到的分钟秒数(getSecond()
)大于或等于60 + leap
,则分钟秒数将设置为FastMath.nextDown(60 + leap)
。这样可以防止在输入值具有比double
更高精度时将四舍五入到无效的分钟秒数。
此构造函数始终处于UTC时间(即将返回0
)。
如果secondsInDayB
或leap
为NaN,则小时和分钟将根据secondInDayA
确定,分钟秒数将为NaN。
secondInDayA
- 秒数的第一部分。
secondInDayB
- 秒数的最后一部分。
leap
- 如果此时间点在闰秒期间,则为闰秒的大小,否则为0.0
。此值不用于计算小时和分钟,但会添加到计算得到的分钟秒数中。
minuteDuration
- 当前分钟的秒数,通常为60
。
OrekitIllegalArgumentException
- 如果上述不等式不成立。
public static TimeComponents parseTime(String string)
支持的格式包括:
如上列表所示,仅支持ISO-8601标准第4.2节中定义的完整表示,不支持扩展表示或精度降低的表示。
string
- 要解析的字符串
IllegalArgumentException
- 如果无法解析字符串
public int getHour()
public int getMinute()
public double getSecond()
public int getMinutesFromUTC()
根据ISO-8601标准,偏移量始终是整数分钟。
public double getSecondsInLocalDay()
UTC偏移量
。
getSecondsInUTCDay()
public double getSecondsInUTCDay()
UTC偏移量
。
-getMinutesFromUTC()
到Constants.JULIAN_DAY + getMinutesFromUTC()
的秒数
getSecondsInLocalDay()
public String toStringWithoutUtcOffset()
formatUtcOffset()
, toString()
public String formatUtcOffset()
+00:00
。
toStringWithoutUtcOffset()
, toString()
public String toString()
toString
在类 Object
中
toStringWithoutUtcOffset()
, formatUtcOffset()
public int compareTo(TimeComponents other)
compareTo
在接口 Comparable<TimeComponents>
中
Copyright © 2002-2023 CS GROUP. All rights reserved.