TimeFormatEnum
import lombok.Getter;
import java.time.format.DateTimeFormatter;
/**
* 描述 : 时间格式化类型枚举类.
*
* <p>说明:
* 1. TimeFormatEnum.LONG_DATE_PATTERN_LINE.formatter; // 获取默认时间格式: yyyy-MM-dd HH:mm:ss
* 2. 对于LocalDate,只能指定短时间格式化类型,否则会出现UnsupportedTemporalTypeException异常
* 3. 当日期字符串格式与指定的{@link TimeFormatEnum}格式无法对应时,则会出现DateTimeParseException异常
*
* @author : MoCha
* @version : v1
* @date : 2021-02-14 09:04
*/
@Getter
public enum TimeFormatEnum {
/* ---------------- 短时间格式 -------------- */
/**
* 短时间格式 yyyy-MM-dd.
*/
SHORT_DATE_PATTERN_LINE("yyyy-MM-dd"),
/**
* 短时间格式 yyyy/MM/dd.
*/
SHORT_DATE_PATTERN_SLASH("yyyy/MM/dd"),
/**
* 短时间格式 yyyy\MM\dd.
*/
SHORT_DATE_PATTERN_BACK_SLASH("yyyy\\MM\\dd"),
/**
* 短时间格式 yyyyMMdd.
*/
SHORT_DATE_PATTERN_NONE("yyyyMMdd"),
/* ---------------- 长时间格式 -------------- */
/**
* 长时间格式 yyyy-MM-dd HH:mm:ss.
*/
LONG_DATE_PATTERN_LINE("yyyy-MM-dd HH:mm:ss"),
/**
* 长时间格式 yyyy/MM/dd HH:mm:ss.
*/
LONG_DATE_PATTERN_SLASH("yyyy/MM/dd HH:mm:ss"),
/**
* 长时间格式 yyyy\MM\dd HH:mm:ss.
*/
LONG_DATE_PATTERN_BACK_SLASH("yyyy\\MM\\dd HH:mm:ss"),
/**
* 长时间格式 yyyyMMdd HH:mm:ss.
*/
LONG_DATE_PATTERN_NONE("yyyyMMdd HH:mm:ss"),
/**
* 长时间格式 yyyyMMddHHmmss.
*/
LONG_DATE_PATTERN_WITH_NONE("yyyyMMddHHmmss"),
/* ---------------- 长时间格式 带毫秒 -------------- */
/**
* 长时间格式 带毫秒 yyyy-MM-dd HH:mm:ss.SSS .
*/
LONG_DATE_PATTERN_WITH_MISC_LINE("yyyy-MM-dd HH:mm:ss.SSS"),
/**
* 长时间格式 带毫秒 yyyy/MM/dd HH:mm:ss.SSS .
*/
LONG_DATE_PATTERN_WITH_MISC_SLASH("yyyy/MM/dd HH:mm:ss.SSS"),
/**
* 长时间格式 带毫秒 yyyy\MM\dd HH:mm:ss.SSS .
*/
LONG_DATE_PATTERN_WITH_MISC_BACK_SLASH("yyyy\\MM\\dd HH:mm:ss.SSS"),
/**
* 长时间格式 带毫秒 yyyyMMdd HH:mm:ss.SSS .
*/
LONG_DATE_PATTERN_WITH_MISC_NONE("yyyyMMdd HH:mm:ss.SSS");
/**
* 时间格式化器.
*/
private final DateTimeFormatter formatter;
TimeFormatEnum(String pattern) {
formatter = DateTimeFormatter.ofPattern(pattern);
}
/**
* 判断是否为短时间格式类型
*
* <p>说明:
* 1. 判断的界限以{@link TimeFormatEnum#SHORT_DATE_PATTERN_NONE}为参考
*
* @param timeFormatEnum 时间格式化类型
* @return true表示为短时间格式化类型
*/
public static boolean isShortDatePattern(TimeFormatEnum timeFormatEnum) {
return timeFormatEnum.ordinal() <= SHORT_DATE_PATTERN_NONE.ordinal();
}
}
LocalDateTimeUtils
import org.springframework.util.Assert;
import java.time.*;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
/**
* 描述 : LocalDate工具类.
*
* @author : MoCha
* @version : v1
* @date : 2021-02-13 17:00
*/
public final class LocalDateUtils {
/**
* Prevents instantiation.
*/
private LocalDateUtils() {
}
/* ---------------- 时间戳相关方法 -------------- */
/**
* 当前LocalDate 转 时间戳(秒级别)
*
* @return 时间戳(秒级别)
*/
public static Long toNowSecond() {
return toSecond(LocalDate