1.常用类
- LocalDate:表示没有时区的日期,例如 2024-04-01。
- LocalTime:表示没有日期的时间,例如 10:15:30。
- LocalDateTime:表示没有时区的日期和时间。
- ZonedDateTime:表示带时区的日期和时间。
- Instant:表示时间线上的一个瞬时点。
- Duration:表示两个时刻之间的时间量。
- Period:表示两个日期之间的年、月、日的量。
2.常用方法
2.1创建和获取
- LocalDate.now():获取当前日期。
- LocalTime.now():获取当前时间。
- LocalDateTime.now():获取当前日期和时间。
- ZonedDateTime.now():获取当前带时区的日期和时间。
- Instant.now():获取当前的瞬时点。
2.2解析和格式化
- LocalDate.parse(CharSequence text):从文本字符串解析出一个 LocalDate。
- LocalDateTime.parse(CharSequence text):从文本字符串解析出一个 LocalDateTime
- DateTimeFormatter.ofPattern(String pattern):创建一个格式化器,用给定的模式。
- 使用DateTimeFormatter 格式化日期时间,如 localDateTime.format(formatter)。
2.3时间操作
- plusDays, plusWeeks, plusMonths, plusYears:在日期上加上一定的天、周、月、年。
- minusHours, minusMinutes, minusSeconds:在时间上减去一定的小时、分钟、秒。
- withDayOfMonth, withDayOfYear, withMonth, withYear:将某个时间部分更改为指定的值。
2.4时间比较
- isBefore, isAfter, isEqual:用于比较两个日期时间的先后顺序。
- Duration.between(Instant startInclusive, Instant endExclusive):计算两个瞬时点之间的持续时间。
- Period.between(LocalDate startDateInclusive, LocalDate endDateExclusive):计算两个日期之间的期间。
下面是一些示例,用到时候不断补充
-
获取当天的开始时间(也就是最小时间)
// 我这儿带有时区的哦,改为你需要的时区即可 LocalDate.now().atStartOfDay(ZoneId.of("Asia/Shanghai"))
-
获取当天的最大时间:比如:2024-04-01 23:59:59
// 我这儿带有时区的哦,改为你需要的时区即可 LocalDate.now().atTime(LocalTime.MAX).atZone(ZoneId.of("Asia/Shanghai"))