Java.time

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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中合理的类型安全。因此,对于日期、时间和日期时间的不同概念有单独的类,还有偏移量和时区的变体。这看起来像是很多类,但是大多数应用程序可以从五个日期/时间类型开始。

即时-时间戳

相关文档
最新文档