Java.time
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java.time
Clock 一种时钟,它使用时区提供对当前时刻、日期和时间的访问。
Duration 基于时间的时间量,例如“34.5秒”
Instant 时间线上的一个瞬时点。
LocalDate ISO-8601日历系统中没有时区的日期,如2007-12-03。
LocalDateTime ISO-8601日历系统中没有时区的日期时间,例如2007-12-03T10:15:30。
LocalTime ISO-8601日历系统中没有时区的时间,如
10:15:30。
MonthDay ISO-8601日历系统中的月日,例如--12-03。
OffsetDateTime 在ISO-8601日历系统中,与UTC/Greenwich 有偏移量的日期时间,例如2007-12-03T10:15:30+01:00。
OffsetTime 在ISO-8601日历系统中,与UTC/Greenwich有偏移量的时间,如10:15:30+01:00。
Period ISO-8601日历系统中基于日期的时间量,例如“2年3个月4天”。
Year ISO-8601日历系统中的一年,如2007年。
YearMoth ISO-8601日历系统中的年-月,如2007-12。
ZoneDateTime ISO-8601日历系统中带有时区的日期时间,例如2007-12-03T10:15:30+01:00欧洲/巴黎。
Zoneid 时区ID,例如欧洲/巴黎。
Zoneoffset 从格林威治/UTC偏移的时区,例如+02:00。
Package java.time Description
日期、时间、瞬间和持续时间的主API。
这里定义的类表示主要的日期时间概念,包括瞬间、持续时间、日期、时间、时区和时段。它们以ISO日历系统为基础,ISO 日历系统是一种事实上的世界历法,遵循的是先入为主的格里高利规则。所有的类都是不可变的和线程安全的。
每个日期时间实例都由api提供的字段组成。有关字段的较低级别访问,请参阅java.time.temporal包裹。每个类都支持打印和解析各种日期和时间。请参阅java.time.format自定义选项包。
这个java.time.chrono包中包含日历中立API ChronoLocalDate、ChronoLocalDateTime、ChronoZonedDateTime 和Era。这是供需要使用本地化日历的应用程序使用的。建议应用程序跨系统边界(如数据库或网络)使用此包中的ISO-8601日期和时间类。日历中立的API应该被保留用于与用户的交互。
Dates and Times
Instant本质上是一个数字时间戳。当前瞬间可以从时钟中检索。这对于日志记录和时间点的持久性非常有用,并且在过去与存储系统电流时间毫秒().
LocalDate存储没有时间的日期。它存储类似“2010-12-03”的日期,也可以用来存储生日。
LocalTime存储没有日期的时间。它存储类似“11:30”的时间,并可用于存储打开或关闭时间。
LocalDateTime存储日期和时间。它存储的日期时间类似于“2010-12-03T11:30”。
ZonedDateTime用时区存储日期和时间。如果您希望在考虑区域ID(如“欧洲/巴黎”)的情况下执行日期和时间的精确计算,这将非常有用。在可能的情况下,建议使用没有时区的简单类。时区的广泛使用往往会给应用程序增加相当大的复杂性。
Duration and Period
除了日期和时间之外,API还允许存储时间段和持续时间。持续时间是沿时间线以纳秒为单位的简单时间度量。一个周期用对人类有意义的单位表示时间量,如年或天。
Additional value types
Month独立存储一个月。这将单独存储一年中的一个月,例如“十二月”。
DayOfWeek独立存储一周中的一天。这将单独存储一周中的一天,例如“星期二”。
一年独立储存一年。这将单独存储一年,例如“2010年”。
YearMonth存储没有日期或时间的年和月。它存储一年和一个月,如'2010-12',可以用于信用卡到期。
MonthDay存储一个月和一天,没有年份或时间。它存储一个月和一个月的某一天,例如“-12-03”,并且可以用来存储像生日这样
的年度事件而不存储年份。
OffsetTime存储一个时间和UTC的偏移量,不带日期。这将存储类似“11:30+01:00”的日期。分区偏移的格式为“+01:00”。
OffsetDateTime存储日期和时间以及与UTC的偏移量。它存储的日期时间类似于“2010-12-03T11:30+01:00”。这有时可以在XML 消息和其他形式的持久化中找到,但包含的信息比完整时区要少。
Package specification
除非另有说明,否则向此包中任何类或接口中的构造函数或方法传递null参数将导致引发NullPointerException。Javadoc
“@param”定义用于总结null行为。没有在每个方法中显式地记录“@throws nullpointereexception”。
所有计算都应检查是否存在数值溢出,并引发算术异常或DateTimeException。
Design notes (non normative)
API的设计初衷是为了尽早拒绝null,并清楚地了解这种行为。键异常是任何接受对象并返回布尔值的方法,出于检查或验证的目的,通常将为null返回false。
API设计为在主高级API中合理的类型安全。因此,对于日期、时间和日期时间的不同概念有单独的类,还有偏移量和时区的变体。这看起来像是很多类,但是大多数应用程序可以从五个日期/时间类型开始。
即时-时间戳