jdk1.8 時間工具類,可以滿足基本操作


時間工具類

 public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
    public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 格式化后的日期字符串,默認使用 yyyy-MM-dd HH:mm:ss
     * @param localDateTime
     * @return formatDateToString
     */
    public static String formatDateToString(LocalDateTime localDateTime){
        return localDateTime.format(DateTimeFormatter.ofPattern(DEFAULT_DATETIME_FORMAT));
    }

    /**
     * 根據給定的格式把時間轉換為字符串
     * @param localDateTime 要格式化的日期
     * @param format 轉換格式
     * @return formatDateToString
     */
    public static String formatDateToString(LocalDateTime localDateTime , String format){
        if (null != localDateTime){
            return localDateTime.format(DateTimeFormatter.ofPattern(format));
        } else {
            return null;
        }
    }

    /**
     * 字符轉換為時間,默認使用yyyy-MM-dd HH:mm:ss格式
     * @param date
     * @return LocalDateTime
     */
    public static LocalDateTime formatStringToDate(String date){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DEFAULT_DATETIME_FORMAT);
        return LocalDateTime.parse(date,dateTimeFormatter);
    }

    /**
     * 字符轉換為時間,默認使用yyyy-MM-dd HH:mm:ss格式
     * @param data 日期字符串
     * @param format 轉換格式
     * @return LocalDateTime
     */
    public static LocalDateTime formatStringToDate(String data,String format){
        if (null != data && ! data.equals("")){
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
            return LocalDateTime.parse(data,dateTimeFormatter);
        } else {
            return null;
        }
    }

    /**
     * 將LocalDateTime轉為long類型的timestamp
     * @param localDateTime
     * @return long
     */
    public static long getTimestampOfDateTime(LocalDateTime localDateTime){
        ZoneId zoneId = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zoneId).toInstant();
        return instant.toEpochMilli();
    }

    /**
     * 將long類型的timestamp轉為LocalDateTime
     * @param timestamp
     * @return LocalDateTime
     */
    public static LocalDateTime getDateTimeOfTimestamp(long timestamp){
        Instant instant = Instant.ofEpochMilli(timestamp);
        ZoneId zoneId = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant,zoneId);
    }

    /**
     * 判斷一個日期是否在指定日期之后
     * @param data 要比較的日期
     * @param afterData 指定的日期
     * @param format 格式
     * @return boolean
     */
    public static boolean isAfter(String data , String afterData , String format){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
        LocalDateTime datas = LocalDateTime.parse(data,dateTimeFormatter);
        LocalDateTime afterDa = LocalDateTime.parse(afterData , dateTimeFormatter);
        return datas.isAfter(afterDa);
    }

    /**
     * 判斷一個日期是否在指定日期之前
     * @param data 要比較的日期
     * @param before 指定的日期
     * @param format 格式
     * @return boolean
     */
    public static boolean isBefore(String data,String before ,String format){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
        LocalDateTime datas = LocalDateTime.parse(data,dateTimeFormatter);
        LocalDateTime afterDa = LocalDateTime.parse(before , dateTimeFormatter);
        return datas.isBefore(afterDa);
    }

    /**
     * 判斷是否為閏年
     * @param data 日期 格式:yyyy-MM-dd
     * @return boolean
     */
    public static boolean isLeapYear(String data){
        LocalDate yeat = LocalDate.parse(data);
        return yeat.isLeapYear();
    }

    /**
     * 判斷是否為閏年
     * @param localDate 日期 格式:yyyy-MM-dd
     * @return boolean
     */
    public static boolean isLeapYear(LocalDate localDate){
        return localDate.isLeapYear();
    }

    /**
     *  當前時間加減年
     * @param years 年
     * @return
     */
    public static LocalDateTime plusYears(int years){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusYears(years);
    }

    /**
     *  當前時間加減月
     * @param months 月份
     * @return
     */
    public static LocalDateTime plusMonths(int months){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusMonths(months);
    }

    /**
     *  當前時間加減日
     * @param days 日
     * @return
     */
    public static LocalDateTime plusDays(int days){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusDays(days);
    }

    /**
     *  當前時間加減星期
     * @param weeks 星期
     * @return
     */
    public static LocalDateTime plusWeeks(int weeks){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusWeeks(weeks);
    }

    /**
     * 當前時間加上幾個小時,傳入負數減去對應的時間
     * @param hours 時間:單位小時
     * @return LocalDateTime
     */
    public static LocalDateTime plusHours(int hours){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusHours(hours);
    }

    /**
     * 當前時間加上幾分鍾,傳入負數減去對應的時間
     * @param minutes 時間:單位分鍾
     * @return LocalDateTime
     */
    public static LocalDateTime plusMinutes(int minutes){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusMinutes(minutes);
    }

    /**
     * 當前時間加上幾秒鍾,傳入負數減去對應的時間
     * @param seconds 時間:單位秒
     * @return LocalDateTime
     */
    public static LocalDateTime plusSeconds(int seconds){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.plusSeconds(seconds);
    }

    /**
     * 修改當前時間的小時
     * @param hour 時間:單位小時
     * @return LocalDateTime
     */
    public static LocalDateTime withHour(int hour){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.withHour(hour);
    }

    /**
     * 修改當前時間的分鍾
     * @param minute 時間:單位分鍾
     * @return LocalDateTime
     */
    public static LocalDateTime withMinute(int minute){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.withMinute(minute);
    }

    /**
     * 修改當前時間的秒
     * @param second 時間:單位秒
     * @return LocalDateTime
     */
    public static LocalDateTime withSecond(int second){
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.withSecond(second);
    }

    /**
     * 給指定的時間加年
     * @param data 指定時間
     * @param years 要加上的年份負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addYears(String data , int years){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusYears(years);
    }

    /**
     * 給指定的時間加月
     * @param data 指定時間
     * @param months 要加上的月負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addMonths(String data , int months){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusMonths(months);
    }

    /**
     * 給指定的時間加日
     * @param data 指定時間
     * @param days 要加上的日負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addDays(String data , int days){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusDays(days);
    }

    /**
     * 給指定的時間加星期
     * @param data 指定時間
     * @param weeks 要加上的星期負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addWeeks(String data, int weeks){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusWeeks(weeks);
    }

    /**
     * 給指定時間加小時
     * @param data 指定時間
     * @param hour 要加上的小時負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addHours(String data , int hour){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusHours(hour);
    }

    /**
     * 給指定時間加分鍾
     * @param data 指定時間
     * @param minutes 要加上的分鍾負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addMinutes(String data , int minutes){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusMinutes(minutes);
    }

    /**
     * 給指定時間加秒
     * @param data 指定時間
     * @param seconds 要加上的秒負數為減去
     * @return LocalDateTime
     */
    public static LocalDateTime addSeconds(String data , int seconds){
        LocalDateTime localDateTime = formatStringToDate(data);
        return localDateTime.plusSeconds(seconds);
    }

    /**
     * 計算兩個時間相差多少年,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusYears(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.YEARS.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少月,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusMonths(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.MONTHS.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少天,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusDays(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.DAYS.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少星期,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusWeeks(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.WEEKS.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少小時,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusHours(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.HOURS.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少分鍾,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusMinutes(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.MINUTES.between(localDateTime,localDateTime2);
    }

    /**
     * 計算兩個時間相差多少秒,結果為負數說明前面的時間比后面的時間大
     * @param time1 時間一
     * @param time2 時間二
     * @return long
     */
    public static long minusSeconds(String time1 ,String time2){
        LocalDateTime localDateTime = formatStringToDate(time1);
        LocalDateTime localDateTime2 = formatStringToDate(time2);
        return ChronoUnit.MINUTES.between(localDateTime,localDateTime2);
    }

    /**
     * 獲取傳入時間的年份
     * @param localDateTime 時間
     * @return
     */
    public static int getYear(LocalDateTime localDateTime){
        return localDateTime.getYear();
    }

    /**
     * 獲取傳入時間的月份
     * @param localDateTime 時間
     * @return
     */
    public static int getMonth(LocalDateTime localDateTime){
        return MyMonth.getMonth(localDateTime.getMonth().toString());
    }

    /**
     * 獲取傳入時間的日
     * @param localDateTime 時間
     * @return
     */
    public static int getDay(LocalDateTime localDateTime){
        return localDateTime.getDayOfMonth();
    }

    /**
     * 獲取傳入時間是星期幾
     * @param localDateTime 時間
     * @return Integer
     */
    public static Integer getWeek(LocalDateTime localDateTime){
        return MyDayOfWeek.getDayWeek(localDateTime.getDayOfWeek().toString());
    }

    /**
     * 獲取傳入時間是一年中的第幾天
     * @param localDateTime 時間
     * @return Integer
     */
    public static Integer getDayOfYear(LocalDateTime localDateTime){
        return localDateTime.getDayOfYear();
    }

    /**
     * 獲取傳入時間的時
     * @param localDateTime 時間
     * @return
     */
    public static int getHour(LocalDateTime localDateTime){
        return localDateTime.getHour();
    }


    /**
     * 獲取傳入時間的分
     * @param localDateTime 時間
     * @return
     */
    public static int getMinutes(LocalDateTime localDateTime){
        return localDateTime.getMinute();
    }

    /**
     * 獲取傳入時間的秒
     * @param localDateTime 時間
     * @return
     */
    public static int getSeconds(LocalDateTime localDateTime){
        return localDateTime.getSecond();
    }

  另外加上兩個附帶使用到的工具類,在獲取月份和星期的時候使用

package com.xy.studyboot.util;

/**
 * WJY
 */
public enum MyMonth {

    JANUARY(1,"JANUARY"),
    FEBRUARY(2,"FEBRUARY"),
    MARCH(3,"MARCH"),
    APRIL(4,"APRIL"),
    MAY(5,"MAY"),
    JUNE(6,"JUNE"),
    JULY(7,"JULY"),
    AUGUST(8,"AUGUST"),
    SEPTEMBER(9,"SEPTEMBER"),
    OCTOBER(10,"OCTOBER"),
    NOVEMBER(11,"NOVEMBER"),
    DECEMBER(12,"DECEMBER");

    private int month;

    private String value;

    private MyMonth(int month,String value){
        this.month = month;
        this.value = value;
    }

    public static Integer getMonth(String value){
        for (MyMonth myMonth: MyMonth.values()){
            if (myMonth.getValue().equals(value)){
                return myMonth.getMonth();
            }
        }
        return null;
    }

    public int getMonth() {
        return month;
    }

    public String getValue() {
        return value;
    }
}

 

package com.xy.studyboot.util;

/**
 * WJY
 */
public enum MyDayOfWeek {

    MONDAY(1,"MONDAY"),
    TUESDAY(2,"TUESDAY"),
    WEDNESDAY(3,"WEDNESDAY"),
    THURSDAY(4,"THURSDAY"),
    FRIDAY(5,"FRIDAY"),
    SATURDAY(6,"SATURDAY"),
    SUNDAY(7,"SUNDAY");

    private int day;

    private String value;

    private MyDayOfWeek(int day , String value){
        this.day = day;
        this.value = value;
    }

    public static Integer getDayWeek(String value){
        for (MyDayOfWeek dayOfWeek : MyDayOfWeek.values()){
            if (dayOfWeek.getValue().equals(value)){
                return dayOfWeek.getDay();
            }
        }
        return null;
    }

    public int getDay() {
        return day;
    }

    public String getValue() {
        return value;
    }

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM