LocalDate
引言
java.util.Date与java.util.Calendar并不是线程安全,开发者需要自己编写额外的代码来处理线程安全。
旧的时间api都不是很好理解,并且并没有提供一些常用的解析转换方法。
解决方案
Java 8 为了弥补这些缺点,提供大量的时间类库, 比如LocalDate, LocalTime, LocalDateTime,
ZonedDateTime, Period, Duration,提供了操作友好的api 作为本文的就来讲一讲比如LocalDate的部分使用
LocalDate ISO格式(YYYY-MM-DD)
获取本地当天时间
LocalDate now = LocalDate.now();
获取本地某一天时间
LocalDate of = LocalDate.of(2019, 10, 27);
LocalDate parse = LocalDate.parse("2019-10-27");
获取当前本地日期并添加一天
LocalDate plusDays = LocalDate.now().plusDays(1);
获取当前日期并减去一个月,其中使用了枚举作为时间单位
LocalDate minus = LocalDate.now().minus(1, ChronoUnit.MONTHS);
获取一个星期中的序号
DayOfWeek dayOfWeek = LocalDate.parse("2019-10-27").getDayOfWeek();
int value = dayOfWeek.getValue();
获取一个月中的序号
int dayOfMonth = LocalDate.parse("2019-10-27").getDayOfMonth();
日期比较:
boolean before = LocalDate.parse("2019-10-27").isBefore(LocalDate.parse("2019-10-07"));
boolean after = LocalDate.parse("2019-10-27").isAfter(LocalDate.parse("2016-10-07"));
获取月初时间
LocalDate firstDayOfMonth = LocalDate.parse("2019-10-27").with(TemporalAdjusters.firstDayOfMonth());
LocalDate lastDayOfMonth = LocalDate.parse("2019-10-27").with(TemporalAdjusters.lastDayOfMonth());
网友评论