11. Java8-日期API-简介

版权声明:您的关注和评论, 是笔者持续创作最大的动力^_^ https://blog.csdn.net/zongf0504/article/details/90057710

Java8 提供了一组新的API, 全部位于java.time.* 包下. 主要有LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration,DateTimeFormatter, ZoneDate,ZoneDateTime 等类.

1. Local*

Java8 中的 LocalDate, LocalTime, LocalDateTime 类的实例均为不可变对象, 类似于String 一样, 换句话而言就是线程安全的. 分别用于表示ISO-8601 日历系统的时间, 日期, 时间和日期, 它们只包含了时间相关的基本信息, 而不包括时区的相关信息. 它们的API 比较相似, 常用API 如下:

常用API 描述
now 获取当前日期, 时间, 日期时间的实例
of* 根据指定日期,时间获取实例
parse 根据字符串和时间格式解析器来获取实例
get* 获取时间日期具体的时,分,秒,毫秒,纳秒…
get/getLong(ChronoField.*) 获取今天是本周, 本月, 本年第几天等常见操作
plus*/minus* 对时间日期进行年月日,时分秒的计算, 获取新的时间日期实例
plus(Period.)/minus(Period.) 更通用的对时间年月日,时分秒的计算, 获取信道 时间日期实例
with* 根据当前日期, 修改具体的年月日,时分秒,以获取新的日期
with(TemporalAdjusters.*) 获取如下一个周五, 下月第一天, 下一个工作日等常见的日期时间
until 计算日期时间之间的间隔
at* 将时间日期转换为时间日期

2. Instant

Instat 是用于时间戳的计算, 它是表示距Unix元年(UTC时区1970.01.01 午夜时分)经历的时间.

3. DateTimeFormatter

DateTimeFormatter 为时间日期格式化解析器, 用于约定字符串和时间日期之间相互转换的格式.该类提供了是三种格式化方法,最常用的还是自定义方式:

  • 预定义的标准格式
  • 语言环境相关的格式
  • 自定义的格式

4. Duration,Period

Duration 用于计算两个日期(LocalDate)之间的时间间隔, Period 用于计算两个时间(LocalTime) 之间的时间间隔.

5. ZonedDateTime

java8 加入了对时区的支持, 提供了包含时区的时间类ZonedDateTime . 除了时间包含时区信息之外, 此日期API 与LocalDateTime 基本无异. 每个时区都拥有自己的zoneId, ZoneId 格式为 {区域}/{城市}, 如 Asia/Shanghai.

6. 与传统日期转换.

新型日期API 与传统API 直接的转换, 可通过传统API 的from 或 valueOf 方法进行转换.或者直接获取对应年月日构造即可.

转换 代码
LocalDate -> java.util.Date Date.valueOf(LocalDate)
LocalDateTime -> java.sql.TimeStamp TimeStamp.valueOf(LocalDateTime)

猜你喜欢

转载自blog.csdn.net/zongf0504/article/details/90057710