package com.qianwen.core.tool.utils; import java.time.Duration; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.Temporal; import java.time.temporal.TemporalAccessor; import java.util.Date; /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/utils/DateTimeUtil.class */ public class DateTimeUtil { public static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); public static final DateTimeFormatter TIME_FORMAT = DateTimeFormatter.ofPattern(DateUtil.PATTERN_TIME); public static String formatDateTime(TemporalAccessor temporal) { return DATETIME_FORMAT.format(temporal); } public static String formatDate(TemporalAccessor temporal) { return DATE_FORMAT.format(temporal); } public static String formatTime(TemporalAccessor temporal) { return TIME_FORMAT.format(temporal); } public static String format(TemporalAccessor temporal, String pattern) { return DateTimeFormatter.ofPattern(pattern).format(temporal); } public static LocalDateTime parseDateTime(String dateStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return parseDateTime(dateStr, formatter); } public static LocalDateTime parseDateTime(String dateStr, DateTimeFormatter formatter) { return LocalDateTime.parse(dateStr, formatter); } public static LocalDateTime parseDateTime(String dateStr) { return parseDateTime(dateStr, DATETIME_FORMAT); } public static LocalDate parseDate(String dateStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return parseDate(dateStr, formatter); } public static LocalDate parseDate(String dateStr, DateTimeFormatter formatter) { return LocalDate.parse(dateStr, formatter); } public static LocalDate parseDate(String dateStr) { return parseDate(dateStr, DATE_FORMAT); } public static LocalTime parseTime(String dateStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return parseTime(dateStr, formatter); } public static LocalTime parseTime(String dateStr, DateTimeFormatter formatter) { return LocalTime.parse(dateStr, formatter); } public static LocalTime parseTime(String dateStr) { return parseTime(dateStr, TIME_FORMAT); } public static Instant toInstant(LocalDateTime dateTime) { return dateTime.atZone(ZoneId.systemDefault()).toInstant(); } public static LocalDateTime toDateTime(Instant instant) { return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } public static Date toDate(LocalDateTime dateTime) { return Date.from(toInstant(dateTime)); } public static Duration between(Temporal startInclusive, Temporal endExclusive) { return Duration.between(startInclusive, endExclusive); } public static Period between(LocalDate startDate, LocalDate endDate) { return Period.between(startDate, endDate); } }