美文网首页
基于LocalDateTime 实现的日期格式化工具类

基于LocalDateTime 实现的日期格式化工具类

作者: 码而优则仕 | 来源:发表于2020-09-01 08:27 被阅读0次
package cn.com.yuns.deploy.utils;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

/**
 * @author wsq
 * @version BaseLocalDateFormatUtils.java  2020/8/27  上午9:32 下午
 */
public class BaseLocalDateFormatUtils {

    /**
     * Date转LocalDateTime
     *
     * @param date Date
     * @return LocalDateTime
     */
    public static LocalDateTime dateToLocalDateTime(Date date) {
        try {
            Instant instant = date.toInstant();
            ZoneId zoneId = ZoneId.systemDefault();
            return instant.atZone(zoneId).toLocalDateTime();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * LocalDateTime转Date
     *
     * @param localDateTime LocalDateTime
     * @return Date
     */
    public static Date localDateTimeToDate(LocalDateTime localDateTime) {
        try {
            ZoneId zoneId = ZoneId.systemDefault();
            ZonedDateTime zdt = localDateTime.atZone(zoneId);
            return Date.from(zdt.toInstant());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

package cn.com.yuns.deploy.utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class LocalDateTimeFormatUtil extends BaseLocalDateFormatUtils implements
        DatePattern {

    private LocalDateTimeFormatUtil() {

    }

    /**
     * 格式化成yyyy-MM-dd'T'HH:mm:ss.SSSZ
     *
     * @param date
     * @return
     */
    public static String getFullStringWithTimeZone(Date date) {
        return safeFormat(date, FULL_FORMAT_WITH_TIMEZONE);
    }

    /**
     * 格式化成yyyy
     *
     * @param date
     * @return
     */
    public static String getYearOnlyString(Date date) {
        return safeFormat(date, YEAR_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyy-MM
     *
     * @param date
     * @return
     */
    public static String getMonthOnlyString(Date date) {
        return safeFormat(date, MONTH_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyy-MM-dd
     *
     * @param date
     * @return
     */
    public static String getDateOnlyString(Date date) {
        return safeFormat(date, DATE_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyyMMdd
     *
     * @param date
     * @return
     */
    public static String getCompactDateOnlyString(Date date) {
        return safeFormat(date, COMPACT_DATE_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyy-MM-dd HH:mm
     *
     * @param date
     * @return
     */
    public static String getMinutesOnlyString(Date date) {
        return safeFormat(date, MINUTES_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyy-MM-dd HH:mm:ss
     *
     * @param date
     * @return
     */
    public static String getFullString(Date date) {
        return safeFormat(date, FULL_FORMAT);
    }

    /**
     * 格式化成yyyy-MM-dd 00:00:00
     *
     * @param date
     * @return
     */
    public static String getDateStartString(Date date) {
        return safeFormat(date, DATE_START_FORMAT);
    }

    /**
     * 格式化成yyyy-MM-dd 23:39:59
     *
     * @param date
     * @return
     */
    public static String getDateEndString(Date date) {
        return safeFormat(date, DATE_END_FORMAT);
    }

    /**
     * 格式化成yyyyMMddHHmmss
     *
     * @param date
     * @return
     */
    public static String getCompactionFullString(Date date) {
        return safeFormat(date, DATE_COMPACTION_FULL_FORMAT);
    }

    /**
     * 格式化成yyyy年MM月dd日
     *
     * @param date
     * @return
     */
    public static String getChineseDateOnlyString(Date date) {
        return safeFormat(date, CHINESE_DATE_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyy年MM月dd日 HH时mm分ss秒
     *
     * @param date
     * @return
     */
    public static String getChineseFullString(Date date) {
        return safeFormat(date, CHINESE_FULL_FORMAT);
    }

    /**
     * 格式化成yyyy年MM月
     *
     * @param date
     * @return
     */
    public static String getChineseMonthOnlyString(Date date) {
        return safeFormat(date, CHINESE_MONTH_ONLY_FORMAT);
    }

    /**
     * 格式化成yyyyMM
     *
     * @param date
     * @return
     */
    public static String getYearMonthOnlyString(Date date) {
        return safeFormat(date, COMPACT_MONTH_ONLY);
    }

    /**
     * 格式化
     *
     * @param date    日期
     * @param pattern 格式
     * @return
     */
    private static String safeFormat(Date date, String pattern) {
        if (date == null || pattern == null) {
            return null;
        }
        LocalDateTime localDateTime = dateToLocalDateTime(date);
        if (null != localDateTime) {
            return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
        }
        return null;
    }

    /**
     * 格式化成HH:mm:ss
     *
     * @param date 日期
     * @return
     */
    public static String timeFormat(Date date) {
        return safeFormat(date, TIME_ONLY_FORMAT);
    }

    public static void main(String args[]) {
        System.out.println(getChineseFullString(new Date()));
    }
}

相关文章

网友评论

      本文标题:基于LocalDateTime 实现的日期格式化工具类

      本文链接:https://www.haomeiwen.com/subject/wrihsktx.html