All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.campanula.utils.date.CLocalDateTimeUtil Maven / Gradle / Ivy

There is a newer version: 1.0.3
Show newest version
package io.github.campanula.utils.date;

import java.time.*;
import java.util.Date;

import static java.time.format.DateTimeFormatter.ofPattern;

public final class CLocalDateTimeUtil {

    /**
     * Date 转成 LocalDateTime
     * @param date 要转换的Date
     * @return 转换后的LocalDateTime
     */
    public static LocalDateTime date2(Date date) {
        return LocalDateTime.ofInstant(date.toInstant(), getZoneId());
    }

    /**
     * @param instant 要转换的Instant
     * @return 转换后的LocalDateTime
     */
    public static LocalDateTime instant2(Instant instant) {
        return LocalDateTime.ofInstant(instant, getZoneId());
    }

    /**
     * @param localDate 要转换的LocalDate
     * @return 返回转换的当天的零点 00:00
     */
    public static LocalDateTime dayStart(LocalDate localDate) {
        return LocalDateTime.of(localDate, LocalTime.MIN);
    }

    /**
     * @param localDate 要转换的LocalDate
     * @return 返回转换的当天的最后时间 '23:59:59.999999999'
     */
    public static LocalDateTime dayEnd(LocalDate localDate) {
        return LocalDateTime.of(localDate, LocalTime.MAX);
    }

    /**
     * 获取指定日期的凌晨
     * @param localDateTime 指定日期
     * @return 返回转换的当天的零点 00:00
     */
    public static LocalDateTime dayStart(LocalDateTime localDateTime) {
        return LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MIN);
    }

    /**
     * 获取指定日期的最后时间 '23:59:59.999999999'
     * @param localDateTime 指定日期
     * @return 返回转换的当天的最后时间 '23:59:59.999999999'
     */
    public static LocalDateTime dayEnd(LocalDateTime localDateTime) {
        return LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MAX);
    }

    /**
     * 获取今天的凌晨
     * @return 返回今天的零点 00:00
     */
    public static LocalDateTime dayStart() {
        return LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
    }

    /**
     * 获取今天的最后时间 '23:59:59.999999999'
     * @return 返回今天的最后时间 '23:59:59.999999999'
     */
    public static LocalDateTime dayEnd() {
        return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
    }

    /**
     * 获取当前时间 格式为 yyyyMMddHHmmss 的字符串
     * @return 格式化后的日期字符串
     */
    public static String yyyyMMddHHmmss() {
        return LocalDateTime.now().format(ofPattern("yyyyMMddHHmmss"));
    }

    /**
     * 获取当指定时间 格式为 yyyyMMddHHmmss 的字符串
     * @param date 指定的时间
     * @return 格式化后的日期字符串
     */
    public static String yyyyMMddHHmmss(LocalDateTime date) {
        return date.format(ofPattern("yyyyMMddHHmmss"));
    }

    /**
     * 获取当前时间 格式为 yyyy-MM-dd HH:mm:ss 的字符串
     * @return 格式化后的日期字符串
     */
    public static String yyyy_MM_ddHH_mm_ss() {
        return LocalDateTime.now().format(ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /**
     * 获取当指定时间 格式为 yyyy-MM-dd HH:mm:ss 的字符串
     * @param date 指定的时间
     * @return 格式化后的日期字符串
     */
    public static String yyyy_MM_ddHH_mm_ss(LocalDateTime date) {
        return date.format(ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    private static ZoneId getZoneId() {
        return ZoneId.systemDefault();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy