java8 日期时间之间的关系
Class or Enum | Year | Month | Day | Hours | Minutes | Seconds* | Zone Offset | Zone ID | toString Output | Where Discussed |
---|---|---|---|---|---|---|---|---|---|---|
Instant | 2013-08-20T15:16:26.355Z | Instant Class | ||||||||
LocalDate | 2013-08-20 | Date Classes | ||||||||
LocalDateTime | 2013-08-20T08:16:26.937 | Date and Time Classes | ||||||||
ZonedDateTime | 2013-08-21T00:16:26.941+09:00[Asia/Tokyo] | Time Zone and Offset Classes | ||||||||
LocalTime | 08:16:26.943 | Date and Time Classes | ||||||||
MonthDay | --08-20 | Date Classes | ||||||||
Year | 2013 | Date Classes | ||||||||
YearMonth | 2013-08 | Date Classes | ||||||||
Month | AUGUST | DayOfWeek and Month Enums | ||||||||
OffsetDateTime | 2013-08-20T08:16:26.954-07:00 | Time Zone and Offset Classes | ||||||||
OffsetTime | 08:16:26.957-07:00 | Time Zone and Offset Classes | ||||||||
Duration | ** | ** | ** | PT20H (20 hours) | Period and Duration | |||||
Period | *** | *** | P10D (10 days) | Period and Duration |
java.time 日期和时间的API的核心包。它包括日期、时间、日期和时间的组合、时区、瞬时、持续时间和时钟。这些类都是基于定义的ISO-8601日历系统,是不可改变的,线程安全的。 java.time.chrono 提供对不同的日历系统的访问。你可以自定义自己的日历系统。 java.time.format 格式化和解析时间和日期。 java.time.temporal 扩展API,提供底层框架和扩展特性, 允许的日期和时间类之间的进行相互操作,比如查询(querying)和调整(adjustment)(使用包内定义的Fields (TemporalField 和 ChronoField) 和units (TemporalUnit 和 ChronoUnit))。 java.time.zone 支持时区、从时区偏移和时区规则的类。如果要使用时区,大多数开发者只需要用到 ZonedDateTime,和 ZoneId 或者 ZoneOffset。
常用的方法前缀:
- of: 静态工厂方法,从组成部分中创建实例
- from: 静态工厂方法,尝试从相似对象中提取实例。from()方法没有of()方法类型安全
- now: 静态工厂方法,用当前时间创建实例
- parse: 静态工厂方法,总字符串解析得到对象实例
- get: 获取时间日期对象的部分状态
- is: 检查关于时间日期对象的描述是否正确
- with: 返回一个部分状态改变了的时间日期对象拷贝。
- plus: 返回一个时间增加了的、时间日期对象拷贝
- minus: 返回一个时间减少了的、时间日期对象拷贝
- to: 把当前时间日期对象转换成另外一个,可能会损失部分状态
- at: 用当前时间日期对象组合另外一个,创建一个更大或更复杂的时间日期对象
- format: 提供格式化时间日期对象的能力