• 时间工具类


    时间转换工具类

    package com.wbc.demo.util;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    /**
     * @author Tim
     * @Description
     * @create 2021-09-02 14:49
     */
    public class DateUtil {
    
        /**
         * 获取传入时间的年
         * @param date
         * @return
         */
        public static int getYear(Date date) {
            return Integer.parseInt(parseString(date,"yyyy"));
        }
    
        /**
         * 获取传入时间的月份
         * @param date
         * @return
         */
        public static int getMonth(Date date) {
            return Integer.parseInt(parseString(date,"MM"));
        }
    
        /**
         * 获取传入时间的日期
         * @param date
         * @return
         */
        public static int getDay(Date date) {
            return Integer.parseInt(parseString(date,"dd"));
        }
    
    
        /**
         * 获取当前时间的年
         * @return
         */
        public static int thisYear() {
            return Integer.parseInt(now("yyyy"));
        }
    
        /**
         * 获取当前时间的 月
         * @return
         */
        public static int thisMonth() {
            return Integer.parseInt(now("MM"));
        }
    
        /**
         * 获取当前时间的 日期
         * @return
         */
        public static int thisDay() {
            return Integer.parseInt(now("dd"));
        }
    
    
        /**
         *
         * 获取当月 的下一个月1号
         * @return
         */
        public static String firstDayOfNextMonth() {
            return firstDayOfNextMonth(new Date());
        }
    
        /**
         * 获取传入日期的 下一个月1号
         * @param date
         * @return
         */
        public static String firstDayOfNextMonth(String date) {
            return firstDayOfNextMonth(parseDate(date));
        }
    
        /**
         * 获取传入日期的 下一个月1号
         * @param date
         * @return
         */
        public static String firstDayOfNextMonth(Date date) {
            int year = getYear(date);
            int month = getMonth(date);
            month++;
    
            if(month>13){
                throw new RuntimeException("month is error");
            }
    
            if(month==13){
                month = 1;
                year++;
            }
    
            String mon = "";
            if(month<10){
                mon = "0";
            }
            mon = mon + month;
    
    
            StringBuffer sb = new StringBuffer();
            sb.append(year);
            sb.append("-");
            sb.append(mon);
            sb.append("-01");
            return sb.toString();
        }
    
    
        /**
         * 获取传入月份的 1号
         * @param date
         * @return
         */
        public static String firstDayOfMonth(Date date) {
            return getFirstDayOfMonth(date);
        }
    
        /**
         * 获取传入月份的 1号
         * @param date
         * @return
         */
        public static String firstDayOfMonth(String date) {
            return getFirstDayOfMonth(date);
        }
    
        /**
         * 获取本月第一天
         * @return
         */
        public static String firstDayOfMonth() {
            return getFirstDayOfMonth(new Date());
        }
    
        /**
         * 获取传入月份的1号
         * @param obj 传入Date 或者 String
         * @return 传入时间的 1号
         */
        private static String getFirstDayOfMonth(Object obj) {
            String yearMonth = null;
            if(obj instanceof Date){
                yearMonth = parseString((Date) obj, "yyyy-MM");
            }
    
            if(obj instanceof String){
                yearMonth = ((String) obj).substring(0, 7);
            }
    
            return yearMonth+"-01";
        }
    
    
        /**
         *
         * @param dateString 传入时间 支持 年月日时分秒 格式  无视连接符
         * @return Date 类型的时间
         */
        public static Date parseDate(String dateString) {
    
            dateString = replaceInt(dateString);
            String pattern = "yyyyMMddHHmmss";
    
            if("".equals(dateString)){
                throw new RuntimeException("dateString is null or empty");
            }
            SimpleDateFormat sdf = new SimpleDateFormat(pattern.substring(0,dateString.length()));
            Date parse = null;
            try {
                parse = sdf.parse(dateString);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return parse;
        }
    
        //传入的字符串只返回数字
        private static String replaceInt(String dateString) {
            StringBuilder sb = new StringBuilder();
            char[] chars = dateString.toCharArray();
    
            for (char aChar : chars) {
                if(aChar>47&&aChar<58){
                    sb.append(aChar);
                }
            }
            return sb.toString();
        }
    
        private static String defaultFormat = "yyyy-MM-dd HH:mm:ss";
    
        /**
         * 获取当前时间 格式为 yyyy-MM-dd HH:mm:ss
         * @return 默认格式的当前时间
         */
        public static String now(){
            return parseString(new Date(),defaultFormat);
        }
    
        /**
         * 获取当前时间
         * @param format 自定义格式
         * @return 自定义格式的当前时间
         */
        public static String now(String format){
            return parseString(new Date(),format);
        }
    
        /**
         * 获取今天的年月日
         * @return
         */
        public static String today(){
            return parseString(new Date(),"yyyy-MM-dd");
        }
    
        /**
         * 自定义时间和格式
         * @param date 时间
         * @param format 格式
         * @return 自定义格式的字符串
         */
        public static String parseString(Date date,String format){
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    
        /**
         *
         * @param date 时间
         * @return 默认格式的字符串
         */
        public static String parseString(Date date){
            return parseString(date,defaultFormat);
        }
    
    
    }
    
    

    Demo类

    package com.wbc.demo.util;
    
    import java.util.Date;
    
    public class TestDateUtil {
    
        public static void main(String[] args) {
            //获取当前时间
            System.out.println("获取当前时间:"+DateUtil.now());
    
            //获取今天
            System.out.println("获取今天:"+DateUtil.today());
    
            //获取今年
            System.out.println("获取今年:"+DateUtil.thisYear());
    
            //获取这个月
            System.out.println("获取这个月:"+DateUtil.thisMonth());
    
            //获取今天
            System.out.println("获取今天"+DateUtil.thisDay());
    
            // String 格式转换为 Date
            System.out.println("String 格式转换为 Date:"+DateUtil.parseDate("2010-12-12"));
    
            // Date 格式转换为 String
            System.out.println("Date 格式转换为 String:"+DateUtil.parseString(new Date()));
            System.out.println("Date 格式转换为 String:"+DateUtil.parseString(new Date(),"yyyy/MM/dd HH:mm:ss"));
    
            //获取指定日期的年 月 日
            Date date = DateUtil.parseDate("2010-12-12");
            System.out.println("获取传入日期的年:"+DateUtil.getYear(date));
            System.out.println("获取传入日期的月:"+DateUtil.getMonth(date));
            System.out.println("获取传入日期的日:"+DateUtil.getDay(date));
    
    
            //获取本月的1号日期
            System.out.println("获取本月的1号日期:"+DateUtil.firstDayOfMonth());
            System.out.println("获取传入日期的1号日期::"+DateUtil.firstDayOfMonth(new Date()));
            System.out.println("获取传入日期的1号日期:"+DateUtil.firstDayOfMonth("2021-02-01"));
    
            System.out.println("获取下个月的1号日期:"+DateUtil.firstDayOfNextMonth());
            System.out.println("获取传入日期的下个月的1号日期:"+DateUtil.firstDayOfNextMonth(new Date()));
            System.out.println("获取传入日期的下个月的1号日期:"+DateUtil.firstDayOfNextMonth("2021-12-12"));
    
        }
    }
    
    
  • 相关阅读:
    css变量
    es6的this指向
    Java面试题(包装类)
    moment笔记
    Class
    CSS斜切角
    Element.getBoundingClientRect()
    Do not mutate vuex store state outside mutation handlers.
    antd不想写那么多option怎么办
    解析URL参数
  • 原文地址:https://www.cnblogs.com/wangbingchen/p/15313940.html
Copyright © 2020-2023  润新知