-
LocalDate:处理日期,不包含时间部分。
- 创建
LocalDate
对象:LocalDate date1 = LocalDate.of(2023, 6, 28); // 2023-06-28 LocalDate date2 = LocalDate.parse("2023-06-28"); // 解析字符串为日期对象
- 获取日期的年、月、日等部分:
int year = date1.getYear(); Month month = date1.getMonth(); int dayOfMonth = date1.getDayOfMonth();
- 日期的比较:
LocalDate today = LocalDate.now(); boolean isBefore = date1.isBefore(today); boolean isAfter = date1.isAfter(today); boolean isEqual = date1.isEqual(today);
- 日期的加减操作:
LocalDate futureDate = date1.plusDays(7); // 加7天后的日期 LocalDate pastDate = date1.minusMonths(1); // 减1个月后的日期
- 创建
-
LocalDateTime:处理日期和时间。
- 创建
LocalDateTime
对象:LocalDateTime dateTime1 = LocalDateTime.of(2023, 6, 28, 14, 30); // 2023-06-28T14:30 LocalDateTime dateTime2 = LocalDateTime.parse("2023-06-28T14:30"); // 解析字符串为日期时间对象
- 获取日期时间的各个部分:
int year = dateTime1.getYear(); Month month = dateTime1.getMonth(); int hour = dateTime1.getHour();
- 日期时间的比较:
LocalDateTime now = LocalDateTime.now(); boolean isBefore = dateTime1.isBefore(now); boolean isAfter = dateTime1.isAfter(now); boolean isEqual = dateTime1.isEqual(now);
- 日期时间的加减操作:
LocalDateTime futureDateTime = dateTime1.plusHours(3); // 加3小时后的日期时间 LocalDateTime pastDateTime = dateTime1.minusDays(1); // 减1天后的日期时间
- 创建
-
Period:处理日期之间的时间段。
- 计算两个日期之间的周期:
LocalDate startDate = LocalDate.of(2023, 6, 1); LocalDate endDate = LocalDate.of(2023, 6, 30); Period period = Period.between(startDate, endDate); int days = period.getDays(); // 29 int months = period.getMonths(); // 0
- 日期加减操作中也可以使用
Period
对象来指定时间段。
- 计算两个日期之间的周期:
-
Duration:处理时间之间的持续时间。
- 计算两个时间点之间的持续时间:
LocalDateTime startDateTime = LocalDateTime.of(2023, 6, 28, 10, 0); LocalDateTime endDateTime = LocalDateTime.of(2023, 6, 28, 12, 0); Duration duration = Duration.between(startDateTime, endDateTime); long hours = duration.toHours(); // 2
- 同样可以通过
Duration
对象进行时间的加减操作。
- 计算两个时间点之间的持续时间:
-
TemporalAdjusters:用于调整日期,如获取下一个周一、本月第一天等。
LocalDate nextMonday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY)); LocalDate firstDayOfMonth = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
-
DateTimeFormatter:日期时间对象与字符串之间的格式化和解析。
LocalDateTime dateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = dateTime.format(formatter); LocalDateTime parsedDateTime = LocalDateTime.parse("2023-06-28 14:30:00", formatter);
-
ZoneId 和 ZonedDateTime:处理时区相关的日期和时间。
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("America/New_York"));
java.time 日期、时间相关处理
最新推荐文章于 2024-07-29 14:22:26 发布