文章16 | 阅读 6558 | 点赞0
Java8 提供了一组新的API, 全部位于java.time.* 包下. 主要有LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration,DateTimeFormatter, ZoneDate,ZoneDateTime 等类.
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* | 将时间日期转换为时间日期 |
Instat 是用于时间戳的计算, 它是表示距Unix元年(UTC时区1970.01.01 午夜时分)经历的时间.
DateTimeFormatter 为时间日期格式化解析器, 用于约定字符串和时间日期之间相互转换的格式.该类提供了是三种格式化方法,最常用的还是自定义方式:
Duration 用于计算两个日期(LocalDate)之间的时间间隔, Period 用于计算两个时间(LocalTime) 之间的时间间隔.
java8 加入了对时区的支持, 提供了包含时区的时间类ZonedDateTime . 除了时间包含时区信息之外, 此日期API 与LocalDateTime 基本无异. 每个时区都拥有自己的zoneId, ZoneId 格式为 {区域}/{城市}, 如 Asia/Shanghai.
新型日期API 与传统API 直接的转换, 可通过传统API 的from 或 valueOf 方法进行转换.或者直接获取对应年月日构造即可.
转换 | 代码 |
---|---|
LocalDate -> java.util.Date | Date.valueOf(LocalDate) |
LocalDateTime -> java.sql.TimeStamp | TimeStamp.valueOf(LocalDateTime) |
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://zongf.blog.csdn.net/article/details/90057710
内容来源于网络,如有侵权,请联系作者删除!