LocalDateTime工具类篇

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值