zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
    

      

  • 相关阅读:
    nano编辑器__vi常用命令
    pyCharm最新2018激活方式(记录)
    一、centos7.4安装docker
    C#备份及还原数据库的实现
    System.Drawing.image 与ImageSource 互转
    Socket 异步通信
    图片与base64的互转
    程序中编写log日志
    SQLHelper
    Cond
  • 原文地址:https://www.cnblogs.com/wangjinyu/p/11494225.html
Copyright © 2011-2022 走看看