上一篇我们了解了[java8]java.time包(一)快速简介
接下来,来点实际的吧!
LocalDate: 代表时间,年月日
LocalTime: 代表时间,时分秒
LocalDateTime: 相当于,LocalDate + LocalTime,代表时间,年月日时分秒
Instant: 代表瞬时时间。注意:可以通过Instant,在Date和LocalDate、LocalTime、LocalDateTime之间做转换。
这里直接转了ImportNew的文章跟上 Java 8 – 日期和时间实用技巧 更多的,会在以下记录,一些常用的例子
从Instan获取Date
Date.from(Instant.now())从Instant获取LocalDateTime
LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());从现在开始获取上周一的零点(如果减一周后的时间刚好是周一直接返回)
LocalDate.now().minusWeeks(1).with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).atStartOfDay();从现在时间往前获取上周末的23:59:59(如果现在的时间就是周一,那么之间减1秒然后返回)
LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).atStartOfDay().minusSeconds(1L);从现在时间减7天后,再往之前的时间获取周一(如果减7天后的时间就是周一,直接返回)
LocalDate.now().minusDays(7).with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));从现在时间减7天后,再往之后的时间获取周日(如果减7天后的时间就是周日,直接返回)
LocalDate.now().minusDays(7).with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));从现在时间获取上个月的最后一天
LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());这里说明下TemporalAdjusters里面的4个方法 next/previous 创建新的日期,并将其值设定为日期调整后或者调整前,第一个符合指定条件(这里使用了星期一举例)要求的日期** nextOrSame/previousOrSame 创建新的日期,并将其值设定为日期调整后或者调整前,第一个符合指定条件(这里使用了星期一举例))要求的日期,如果该日期已经符合要求,直接返回该对象
注意 后续会慢慢追加,使用到的复杂例子