美文网首页
时间工具类---LocalDate

时间工具类---LocalDate

作者: java_飞 | 来源:发表于2020-06-06 10:29 被阅读0次
    package com.mmhsy.util;
    
    import java.time.*;
    import java.time.format.DateTimeFormatter;
    import java.time.temporal.TemporalAdjusters;
    import java.util.Date;
    
    
    /**
     * @author David
     * @Description: LocalDateUtil工具类
     * @date 2020/6/2 7:07 下午
     */
    public class LocalDateUtil {
    
        /** 格式 :yyyy-MM-dd HH:mm:ss */
        public static final String DATEFORMAT_STR_001 = "yyyy-MM-dd HH:mm:ss";
        /** 格式 :yyyy-MM-dd */
        public static final String DATEFORMAT_STR_002 = "yyyy-MM-dd";
    
        /** 格式 :MM-dd */
        public static final String DATEFORMAT_STR_003 = "MM-dd";
        /** 格式 :HH:mm:ss */
        public static final String DATEFORMAT_STR_004 = "HH:mm:ss";
        /** 格式 :HH:mm */
        public static final String DATEFORMAT_STR_005 = "HH:mm";
    
        /** 格式 :yyyyMMddHHmmss */
        public static final String DATEFORMAT_STR_011 = "yyyyMMddHHmmss";
        /** 格式 :yyyyMMdd */
        public static final String DATEFORMAT_STR_012 = "yyyyMMdd";
        /** 格式 :yyyyMM */
        public static final String DATEFORMAT_STR_013 = "yyyyMM";
        /** 格式 :HHmmss */
        public static final String DATEFORMAT_STR_014 = "HHmmss";
        /** 格式 :yyyyMMddHH:mm:ss */
        public static final String DATEFORMAT_STR_015 = "yyyyMMdd HH:mm:ss";
        /** 格式 :yyyyMMddHHmmssSSS */
        public static final String DATEFORMAT_STR_016 = "yyyyMMddHHmmssSSS";
        /** 格式 :yyyyMMddHHmm */
        public static final String DATEFORMAT_STR_017 = "yyyyMMddHHmm";
    
        /** 格式 :yyyy年MM月dd日 HH时mm分ss秒 */
        public static final String DATEFORMAT_STR_021 = "yyyy年MM月dd日 HH时mm分ss秒";
        /** 格式 :yyyy年MM月dd日 */
        public static final String DATEFORMAT_STR_022 = "yyyy年MM月dd日";
        /** 格式 :MM月dd日 hh:mm */
        public static final String DATEFORMAT_STR_023 = "MM月dd日 hh:mm";
        /** 格式 :yyyy/MM/dd */
        public static final String DATEFORMAT_STR_024 = "yyyy/MM/dd";
    
        /** 格式 :yyyy-MM */
        public static final String DATEFORMAT_STR_025 = "yyyy-MM";
        /** 格式 :MM月dd日 */
        public static final String DATEFORMAT_STR_026 = "MM月dd日";
        /** 格式 :yyyy-MM-dd HH:mm */
        public static final String DATEFORMAT_STR_027 = "yyyy-MM-dd HH:mm";
        /** 格式 :yyyy */
        public static final String DATEFORMAT_STR_028 = "yyyy";
        /** 格式 :yyyy/MM */
        public static final String DATEFORMAT_STR_029 = "yyyy/MM";
        /** 格式 :yyyyMMddHH */
        public static final String DATEFORMAT_STR_030 = "yyyyMMddHH";
    
    
        /**
         * 将long类型的timestamp转为LocalDateTime
         *
         * @param timestamp
         * @return
         */
        public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
            Instant instant = Instant.ofEpochMilli(timestamp);
            ZoneId zone = ZoneId.systemDefault();
            return LocalDateTime.ofInstant(instant, zone);
    
        }
    
        /**
         * 将LocalDateTime转为long类型的timestamp
         *
         * @param localDateTime
         * @return
         */
        public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
            ZoneId zone = ZoneId.systemDefault();
            Instant instant = localDateTime.atZone(zone).toInstant();
            return instant.toEpochMilli();
        }
        /**
         * 获取该时间周的 周一
         * @return
         */
        public static LocalDateTime getMondayOfWeek(LocalDateTime localDateTime) {
            return  localDateTime.with(DayOfWeek.MONDAY);
        }
    
        /**
         * 获取该时间周的 周末
         * @return
         */
        public static LocalDateTime getSundayOfWeek(LocalDateTime localDateTime) {
            return   localDateTime.with(DayOfWeek.SUNDAY);
        }
    
        /**
         * 获取该时间月的第一天
         * @return
         */
        public static LocalDateTime getFirstDayOfMonth(LocalDateTime localDateTime) {
            return  localDateTime.with(TemporalAdjusters.firstDayOfMonth());
        }
        /**
         * 获取该时间月的第一天
         * @return
         */
        public static LocalDateTime getLastDayOfCurrentMonth(LocalDateTime localDateTime) {
            return   localDateTime.with(TemporalAdjusters.lastDayOfMonth());
        }
    
        /**
         * 获取该时间季度第一天
         * @return
         */
        public static LocalDate getFirstDayOfQuarter(LocalDateTime localDateTime) {
            Month month = localDateTime.getMonth();
            Month firstMonthOfQuarter = month.firstMonthOfQuarter();
           return LocalDate.of(localDateTime.getYear(), firstMonthOfQuarter, 1);
        }
    
    
        /**
         * 获取该时间季度最后一天
         * @return
         */
        public static LocalDate getLastDayOfQuarter(LocalDateTime localDateTime) {
            Month month = localDateTime.getMonth();
            Month firstMonthOfQuarter = month.firstMonthOfQuarter();
            Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
            LocalDate date = LocalDate.of(localDateTime.getYear(), endMonthOfQuarter, 1);
            return date.with(TemporalAdjusters.lastDayOfMonth());
        }
    
        /**
         * 获取该时间年的第一天
         * @return
         */
        public static LocalDateTime getFirstDayOfYear(LocalDateTime localDateTime){
           return localDateTime.with(TemporalAdjusters.firstDayOfYear());
        }
    
        /**
         * 获取该时间年的最后一天
         * @return
         */
        public static LocalDateTime getLastDayOfYear(LocalDateTime localDateTime){
            return localDateTime.with(TemporalAdjusters.lastDayOfYear());
        }
    
        /**
         * localDate转date
         *
         * @param date
         * @return
         */
    
        public static Date convertDate(LocalDate date) {
            ZonedDateTime zonedDateTime = date.atStartOfDay(ZoneId.systemDefault());
            return Date.from(zonedDateTime.toInstant());
        }
    
        /**
         * date 转localDate
         * @param date
         * @return
         */
        public static LocalDate convertLocalDate(Date date){
            return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        }
    
        /**
         * localDateTime 转date
         * @param dateTime
         * @return
         */
        public static Date convertDate(LocalDateTime dateTime){
            ZoneId zoneId = ZoneId.systemDefault();
            ZonedDateTime zdt = dateTime.atZone(zoneId);
           return Date.from(zdt.toInstant());
        }
        /**
         * date转localDateTime
         * @param date
         * @return
         */
        public static LocalDateTime convertLocalDateTime(Date date){
            Instant instant = date.toInstant();
            ZoneId zoneId = ZoneId.systemDefault();
           return instant.atZone(zoneId).toLocalDateTime();
        }
    
        /**
         * 格式化
         *
         * @param dateTime
         * @param pattern
         * @return
         */
        public static String format(LocalDateTime dateTime, String pattern) {
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
            return dtf.format(dateTime);
        }
    
    
        /**
         * 格式化日期
         * @param date
         * @param pattern
         * @return
         */
        public static String format(LocalDate date, String pattern) {
            DateTimeFormatter format = DateTimeFormatter.ofPattern(pattern);
            return format.format(date);
        }
    
        public static void main(String[] args) {
            LocalDateTime time = LocalDateTime.now().withSecond(0).withMinute(0).withNano(0);
    
            DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss SSS");
    
            LocalDateTime begin =time.plusDays(-2);
    
            LocalDateTime end =time;
    
            long gap = end.toLocalDate().toEpochDay() - begin.toLocalDate().toEpochDay() +1;
    
            System.out.println(format.format(begin));
            System.out.println(format.format(end));
            begin = begin.plusDays(-gap);
            end = end.plusDays(-gap);
    
    
            System.out.println(format(begin,DATEFORMAT_STR_021));
            System.out.println(format(end,DATEFORMAT_STR_021));
    
            LocalDateTime t =  LocalDateTime.now();
    
    
    
            LocalDateTime dateTime =getDateTimeOfTimestamp(System.currentTimeMillis());
    
            System.out.println(format.format(t));
            System.out.println(format.format(dateTime));
    
    
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:时间工具类---LocalDate

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