拆分示例,补个思维导图
16lz
2021-01-22
上一篇研究了一下 JDK 1.8 time 包的 api,JDK 1.8 中的日期与时间 API 一览。
顺带把里面的示例拆分一下。
常用 api
1、 获取当前日期
LocalDate.now()
2、创建日期
LocalDate date = LocalDate.of(2020, 9, 21)
3、获取年份
date.getYear()
//通过 TemporalField 接口的实现枚举类 ChronoField.YEAR 获取年份
date.get(ChronoField.YEAR)
4、获取月份
date.getMonth().getValue()
//通过 TemporalField 接口的实现枚举类 ChronoField.MONTH_OF_YEAR 获取月份
date.get(ChronoField.MONTH_OF_YEAR)
5、获取日
date.getDayOfMonth()
//通过 TemporalField 接口的实现枚举类 ChronoField.DAY_OF_MONTH 获取日
date.get(ChronoField.DAY_OF_MONTH)
6、获取周几
date.getDayOfWeek()
7、获取当前月多少天
date.lengthOfMonth()
8、获取当前年是否为闰年
date.isLeapYear()
9、当前时间
LocalTime nowTime = LocalTime.now()
10、创建时间
LocalTime.of(23, 59, 59)
11、获取时
nowTime.getHour()
12、获取分
nowTime.getMinute()
13、获取秒
nowTime.getSecond()
14、获取毫秒
nowTime.getLong(ChronoField.MILLI_OF_SECOND)
15、获取纳秒
nowTime.getNano()
16、创建日期时间对象
LocalDateTime.of(2020, 9, 21, 1, 2, 3);LocalDateTime.of(date, nowTime);
17、获取当前日期时间对象
LocalDateTime.now()
18、通过 LocalDate 创建日期时间对象
date.atTime(1, 2, 3)
19、通过 LocalTime 创建日期时间对象
nowTime.atDate(date)
20、通过 LocalDateTime 获取 LocalDate 对象
LocalDateTime.now().toLocalDate()
21、通过 LocalDateTime 获取 LocalTime 对象
LocalDateTime.now().toLocalTime()
22、解析日期字符串
LocalDate.parse("2020-09-21")
23、解析时间字符串
LocalTime.parse("01:02:03")
24、解析日期时间字符串
LocalDateTime.parse("2020-09-21T01:02:03", DateTimeFormatter.ISO_LOCAL_DATE_TIME)
25、方便时间建模、机器处理的时间处理类 Instant,起始时间 1970-01-01 00:00:00
//起始时间 + 3 秒Instant.ofEpochSecond(3)//起始时间 + 3 秒 + 100 万纳秒Instant.ofEpochSecond(3, 1_000_000_000)//起始时间 + 3 秒 - 100 万纳秒Instant.ofEpochSecond(3, -1_000_000_000))//距离 1970-01-01 00:00:00 毫秒数Instant.now().toEpochMilli()
26、Duration:LocalTime、LocalDateTime、Intant 的时间差处理
Duration.between(LocalTime.parse("01:02:03"), LocalTime.parse("02:03:04"))Duration.between(LocalDateTime.parse("2020-09-21T01:02:03"), LocalDateTime.parse("2020-09-22T02:03:04"))Duration.between(Instant.ofEpochMilli(1600623455080L), Instant.now())
27、日期时间,前、后、相等比较
//2020-09-21 在 2020-09-18 前?LocalDate.parse("2020-09-21").isBefore(LocalDate.parse("2020-09-18"))//01:02:03 在 02:03:04 后?LocalTime.parse("01:02:03").isAfter(LocalTime.parse("02:03:04"))
28、修改日期、时间对象,返回副本
//修改日期返回副本LocalDate.now().withYear(2019).withMonth(9).withDayOfMonth(9)LocalDate date4Cal = LocalDate.now();//加一周date4Cal.plusWeeks(1)//减两个月date4Cal.minusMonths(2)//减三年date4Cal.minusYears(3)
29、格式化
//格式化当前日期LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)//指定格式,格式化当前日期LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))指定格式,格式化当前日期时间//格式化当前日期时间LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss"))
30、解析
//日期解析LocalDate.parse("2020-09-20")//指定格式,日期解析LocalDate.parse("2020/09/20", DateTimeFormatter.ofPattern("yyyy/MM/dd"))//指定格式,日期时间解析LocalDateTime.parse("2020/09/20 01:01:03", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))
31、时区
//上海时区ZoneId shanghaiZone = ZoneId.of("Asia/Shanghai");//设置日期为上海时区LocalDate.now().atStartOfDay(shanghaiZone)//设置日期时间为上海时区LocalDateTime.now().atZone(shanghaiZone)//设置 Instant 为上海时区Instant.now().atZone(shanghaiZone)
32、子午线时间差
//时间差减 1 小时ZoneOffset offset = ZoneOffset.of("-01:00");//设置时间差OffsetDateTime.of(LocalDateTime.now(), offset)
更多相关文章
- JDK 1.8 中的日期与时间 API 一览
- 4: zabbix5.0自动发现网站域名并监控访问状态和请求时间
- 分享 1 个一次性免费获得极客时间 2-3 个课程的办法
- 说一下这段时间面试的感觉
- 无限重置idea试用期过期时间插件 简单方便 亲测可用
- 数据结构--时间复杂度与空间复杂度
- Java 8 日期 / 时间( Date Time )API 指南
- Java EE 8 时间表公布,预计 7 月发布最终版