zoukankan      html  css  js  c++  java
  • 【开发笔记】-时间工具类

    package com.cjy.util;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    
    public class DateTimeUtil {
        private static int weeks = 0;
    
        /**
         * 时间格式:yyyy-MM-dd HH:mm:ss
         */
        private static final String yyyy_MM_dd_HH__mm_ss = "yyyy-MM-dd HH:mm:ss";
        
        /**
         * 时间格式:yyyy-MM-dd
         */
        private static final String yyyy_MM_dd = "yyyy-MM-dd";
        
        /**
         * 时间格式:yyyy-MM
         */
        private static final String yyyy_MM = "yyyy-MM";
    
        /**
         * 获得当前日期与本周一相差的天数
         */
        public static int getMondayPlus() {
            Calendar cd = Calendar.getInstance();
            // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
            int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1;
            if (dayOfWeek == 1) {
                return 0;
            } else {
                return 1 - dayOfWeek;
            }
        }
    
        /**
         * 获得本周星期日的日期
         */
        public static String getCurrentWeekday() {
            weeks = 0;
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获得本周一的日期
         */
        public static String getMondayOFWeek() {
            weeks = 0;
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获得上周星期日的日期
         */
        public static String getPreviousWeekSunday() {
            weeks = 0;
            weeks--;
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获得上周星期一的日期
         */
        public static String getPreviousWeekday() {
            weeks = 0;
            weeks--;
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获得下周星期一的日期
         */
        public static String getNextMonday() {
            weeks++;
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获得下周星期日的日期
         */
        public static String getNextSunday() {
            int mondayPlus = getMondayPlus();
            GregorianCalendar currentDate = new GregorianCalendar();
            currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);
            Date monday = currentDate.getTime();
            DateFormat df = DateFormat.getDateInstance();
            String preMonday = df.format(monday);
            return preMonday;
        }
    
        /**
         * 获取当天日期
         * 
         * @param dateformat
         */
        public static String getNowTime(String dateformat) {
            Date now = new Date();
            SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 格式化时间格式
            String hehe = dateFormat.format(now);
            return hehe;
        }
    
        /**
         * 获得前天的日期
         * 
         * @param dateformat
         */
        public static String getPreviousTimes(String dateformat) {
            Date date = new Date();
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            calendar.add(calendar.DATE, -2);// 把日期往后增加一天.整数往后推,负数往前移动
            date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            String dateString = formatter.format(date);
            return dateString;
        }
    
        /**
         * 获得昨天的日期
         * 
         * @param dateformat
         */
        public static String getPreviousTime(String dateformat) {
            Date date = new Date();
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            calendar.add(calendar.DATE, -1);// 把日期往前减少一天.整数往后推,负数往前移动
            date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            String dateString = formatter.format(date);
            return dateString;
        }
        /**
         * 获得明天的日期
         * 
         * @param dateformat
         */
        public static String getTomorrowTime(String dateformat) {
            Date date = new Date();
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            calendar.add(calendar.DATE, 1);// 把日期往前减少一天.整数往后推,负数往前移动
            date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            String dateString = formatter.format(date);
            return dateString;
        }
    
        /**
         * 获得当月的第一天(0时0分0秒)
         * 
         * @return 类似(2014-07-31 00:00:00)
         */
        public static String getNowFirstMonthDay() {
            SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
            Calendar c = Calendar.getInstance();
            c.add(Calendar.MONTH, 0);
            c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天
            String first = formatter.format(c.getTime());
            if(first != null && !first.equals("")){
                first += " 00:00:00";
            }
            return first;
        }
    
        /**
         * 获得当月的最后一天(23时59分59秒)
         * 
         * @return 类似(2014-07-31 23:59:59)
         */
        public static String getNowLastMonthDay() {
            SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
            Calendar ca = Calendar.getInstance();
            ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));
            String last = formatter.format(ca.getTime());
            if(last != null && !last.equals("")){
                last += " 23:59:59";
            }
            return last;
        }
        
        /**
         * 获得当月的第一天(0时0分0秒)
         * 
         * @return 类似(2014-07-31 00:00:00)
         */
        public static String getNowFirstMonthDay(String dateformat) {
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            Calendar c = Calendar.getInstance();
            c.add(Calendar.MONTH, 0);
            c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天
            String first = formatter.format(c.getTime());
            return first;
        }
    
        /**
         * 获得当月最后一天
         * 
         * @param dateformat
         *            时间格式
         * @return
         */
        public static String getNowLastMonthDay(String dateformat) {
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            Calendar ca = Calendar.getInstance();
            ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));
            String last = formatter.format(ca.getTime());
            return last;
        }
    
        /**
         * 获得指定Date类型日期月份的第一天
         * 
         * @param date
         *            Date类型的时间
         * @param dateformat
         *            时间格式
         * @return
         */
        public static String getFirstMonthDay(Date date, String dateformat) {
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            Calendar c = Calendar.getInstance();
            c.setTime(date);
            c.add(Calendar.MONTH, 0);
            c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天
            String first = formatter.format(c.getTime());
            return first;
        }
    
        /**
         * 获得指定Date类型日期月份的最后一天
         * 
         * @param date
         *            Date类型的时间
         * @param dateformat
         *            时间格式
         * @return
         */
        public static String getLastMonthDay(Date date, String dateformat) {
            SimpleDateFormat formatter = new SimpleDateFormat(dateformat);
            Calendar c = Calendar.getInstance();
            c.setTime(date);
            c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
            String last = formatter.format(c.getTime());
            return last;
        }
    
        public static int getCountDay(int year, int month) {
            month = month - 1;
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.YEAR, year);
            cal.set(Calendar.MONTH, month);// Java月份才0开始算 6代表上一个月7月
            return cal.getActualMaximum(Calendar.DATE);
        }
    
        /**
         * 获取指定时间的月份(如果月份小于10,则返回01-09形式的时间)
         * 
         * @param date
         *            Date格式的时间
         * @return 01-12
         */
        public static String getMonth(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);
            String nowMonthTime = sdf.format(date);
            return nowMonthTime.substring(5, 7);
        }
    
        /**
         * 获取yyyy-MM格式的时间
         * 
         * @param date
         *            Date格式的时间
         * @param format
         *            指定时间格式
         * @return 返回yyyy-MM格式的时间
         */
        public static String getTimeByFormat(Date date, String format) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    
        /**
         * 将字符串时间转变为java.util.Date格式时间
         * 
         * @param time
         *            字符串格式时间
         * @return java.util.Date
         */
        public static Date strTimeToDate(String time) {
            SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);
            Date date = null;
            try {
                date = sdf.parse(time);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return date;
        }
        
        /**
         * 将字符串时间转变为java.util.Date格式时间,格式自定
         * 
         * @param time
         *            字符串格式时间
         * @param format
         * @return java.util.Date
         */
        public static Date strTimeToDate(String time,String format) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            Date date = null;
            try {
                date = sdf.parse(time);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return date;
        }
    
        /**
         * 获取指定时间的上个月的yyyy-MM格式的时间
         * 
         * @param date
         * @return
         */
        public static String getLastMonth(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int months = calendar.get(Calendar.MONTH);
            calendar.set(Calendar.MONTH, (months - 1));
            calendar.set(Calendar.DAY_OF_MONTH,
                    calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
            Date strDateTo = calendar.getTime();
            return sdf.format(strDateTo);
        }
    
        
        
    
        
        /**
         * 判断时间date1是否在时间date2之前<br/>
         * 如果第一个时间小于第二个时间返回true,反之返回false
         * (参数时间格式为yyyy-MM-dd)
         * @param date1 要比较的第一个时间
         * @param date2 要比较的第二个时间
         * @return date1<date2 返回true,date1>date2返回false,相等时等同于date1>date2
         */
        public static boolean isDateBeforeToBoolean(String date1, String date2) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
                return sdf.parse(date1).before(sdf.parse(date2));
            } catch (ParseException e) {
                System.out.print("[SYS] " + e.getMessage());
                return false;
            }
        }
        
        /**
         * 判断时间date1是否在时间date2之后<br/>
         * 如果第一个时间大于于第二个时间返回true,反之返回false
         * (参数时间格式为yyyy-MM-dd)
         * @param date1 要比较的第一个时间
         * @param date2 要比较的第二个时间
         * @return date1>date2 返回true,date1<date2返回false,相等时等同于date1<date2
         */
        public static boolean isDateAfterToBoolean(String date1, String date2) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
                return sdf.parse(date1).after(sdf.parse(date2));
            } catch (ParseException e) {
                System.out.print("[SYS] " + e.getMessage());
                return false;
            }
        }
        
    
        
        
        
        
        /**
         * (时间比较)获取两个yyy-MM-dd格式时间中较小的时间,如果时间相等,则返回第二个时间<br/>
         * (参数时间格式为yyyy-MM-dd)
         * 
         * @param date1
         *            要比较的第一个时间
         * @param date2
         *            要比较的第二个时间
         * @return 返回小的时间
         */
        public static String getBeforeTime(String date1, String date2) {
            if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){
                return null;
            }
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
                boolean falg = sdf.parse(date1).before(sdf.parse(date2));
                if (falg) {
                    return date1;
                } else {
                    return date2;
                }
            } catch (ParseException e) {
                System.out.print("[SYS] " + e.getMessage());
                return null;
            }
        }
    
        /**
         * (时间比较)获取两个yyy-MM-dd格式时间中较大的时间,如果时间相等,则返回第二个时间<br/>
         * (参数时间格式为yyyy-MM-dd)
         * 
         * @param date1
         *            要比较的第一个时间
         * @param date2
         *            要比较的第二个时间
         * @return 返回大的时间
         */
        public static String getAfterTime(String date1, String date2) {
            if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){
                return null;
            }
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);
                boolean falg = sdf.parse(date1).after(sdf.parse(date2));
                if (falg) {
                    return date1;
                } else {
                    return date2;
                }
            } catch (ParseException e) {
                System.out.print("[SYS] " + e.getMessage());
                return null;
            }
        }
    
        /**
         * 将时间戳转换为时间
         * @param s     时间戳
         * @return
         */
        public static String stampToDate(String s){
            String res;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            long lt = new Long(s);
            Date date = new Date(lt*1000);
            res = simpleDateFormat.format(date);
            return res;
        }
    }
    package com.cjy.util;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * 日期转换工具。<br/>
     * <br/>
     * 本类用于日期格式转换,其中包含了文本转日期、日期转文本,转换为特定格式的日期(字符串),根据变量改变日期等日期常用操作。<br/>
     * <br/>
     * <b>Example:</b><br/>
     * <br/>
     * 
     * @author 李凯飞
     * @version Ver 1.0.1 2014-04-21 改订
     * @since 1.0
     */
    
    public class DateUtil {
    
        /**
         * 获取当前时间格式yyy-MM-dd HH:mm:ss时间字符串
         * 
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static String getNowDateStr() {
            return dateConvertStr(new Date(), "yyyy-MM-dd HH:mm:ss");
        }
    
        /**
         * 获取当前时间格式yyy-MM-dd时间字符串
         * 
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static String getNowDateDayStr() {
            return dateConvertStr(new Date(), "yyyy-MM-dd");
        }
    
        /**
         * 将Date类型转换成yyy-MM-dd HH:mm:ss 字符串类型
         * 
         * @param Date
         *            date
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static String dateConvertStr(Date date) {
            return dateConvertStr(date, "yyyy-MM-dd HH:mm:ss");
        }
    
        /**
         * 将Date类型转换成yyy-MM-dd字符串类型
         * 
         * @param Date
         *            date
         * @param String
         *            format 如:yyyy-MM-dd HH:mm:ss
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static String dateConvertDayStr(Date date) {
            return dateConvertStr(date, "yyyy-MM-dd");
        }
    
        /**
         * 将Date类型转换成字符串类型
         * 
         * @param Date
         *            date
         * @param String
         *            format 如:yyyy-MM-dd HH:mm:ss
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static String dateConvertStr(Date date, String format) {
            return (date == null) ? null : new SimpleDateFormat(format)
                    .format(date);
        }
    
        /**
         * 时间格式字符串转换成Date类型
         * 
         * @param String
         *            date
         * @param String
         *            format 如:yyyy-MM-dd HH:mm:ss
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static Date dateStrConvertDate(String date, String format) {
            try {
                SimpleDateFormat simpledateformat = new SimpleDateFormat(format);
                Date newdate = simpledateformat.parse(date);
                return newdate;
            } catch (Exception e) {
                return null;
            }
    
        }
    
        /**
         * 根据日期获取当前为星期几
         * 
         * @param date
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static int getWeek(Date date) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            int weekno = cal.get(Calendar.DAY_OF_WEEK) - 1;
            if (weekno == 0)
                weekno = 7;
            return weekno;
    
        }
    
        /**
         * 计算两个时间间隔多少天
         * 
         * @param startday
         * @param endday
         * @return
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static int getIntervalDays(Date startday, Date endday) {
            if (startday.after(endday)) {
                Date cal = startday;
                startday = endday;
                endday = cal;
            }
            long sl = startday.getTime();
            long el = endday.getTime();
            long ei = el - sl;
            return (int) (ei / (1000 * 60 * 60 * 24));
        }
    
        /**
         * 指定时间对象,根据日历的规则,为给定的日历字段添加或减去指定的时间量,返回时间对象
         * 
         * @param date
         *            Date类型
         * @param field
         *            int 日历字段,如:Calendar.DAY_OF_MONTH
         * @param amount
         *            int 为字段添加的日期或时间量。
         * @return Date值
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static Date getDate(Date date, int field, int amount) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(field, amount);
            return cal.getTime();
        }
    
        /**
         * 指定时间对象,根据日历的规则,为给定的日历字段添加或减去指定的天数,返回时间对象
         * 
         * @param date
         *            Date类型
         * @param day
         *            天 int 为字段添加的日期或时间量。
         * @return Date值
         * @author: NQY
         * @Createtime: Sep 14, 2012
         */
        public static Date getDateMonth(Date date, int day) {
            return getDate(date, Calendar.MONTH, day);
        }
    
        /**
         * 获取指定时间在当年中的第几周
         * 
         * @param date
         *            Date类型
         * @return
         * @author: NQY
         * @Createtime: Aug 13, 2012
         */
        public static int getWeekNumber(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.WEEK_OF_YEAR);
    
        }
    
        /**
         * 获取当前时间在当年中的第几周
         * 
         * @return
         * @author: NQY
         * @Createtime: Aug 13, 2012
         */
        public static int getWeekNumber() {
    
            return getWeekNumber(new Date());
    
        }
        /**
         * 
         * author:                  wqm
         * Created:                 Apr 15, 2014 2:24:17 PM 
         * <font color="red">Description:取当前时间 后 2分钟 和 后10分钟</font>
         * 
         * @return String 如 10#40#10#50#
         */
        public static String getUpCheckTime(int upspace, int checkspace){
            StringBuilder sb = new StringBuilder("");
            String currenttime = dateConvertStr(new Date(), "HH:mm:ss");
            String[] currentArr = currenttime.split(":");
            //上传时间间隔
            if(Integer.parseInt(currentArr[1])+upspace >= 60){
                sb.append(Integer.parseInt(currentArr[0])+1).append("#").append(Integer.parseInt(currentArr[1])+upspace-60).append("#");
            }else{
                sb.append(currentArr[0]).append("#").append(Integer.parseInt(currentArr[1])+upspace).append("#");
            }
            //签到时间间隔
            if(Integer.parseInt(currentArr[1])+checkspace >= 60){
                sb.append(Integer.parseInt(currentArr[0])+1).append("#").append(Integer.parseInt(currentArr[1])+checkspace-60).append("#");
            }else{
                sb.append(currentArr[0]).append("#").append(Integer.parseInt(currentArr[1])+checkspace).append("#");
            }
            return sb.toString();
        }
    
        /**
         * 获得该月第一天
         * 
         * @param year
         * @param month
         * @return
         */
        public static String getFirstDayOfMonth(int year, int month) {
            Calendar cal = Calendar.getInstance();
            // 设置年份
            cal.set(Calendar.YEAR, year);
            // 设置月份
            cal.set(Calendar.MONTH, month - 1);
            // 获取某月最小天数
            int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
            // 设置日历中月份的最小天数
            cal.set(Calendar.DAY_OF_MONTH, firstDay);
            // 格式化日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String firstDayOfMonth = sdf.format(cal.getTime());
            return firstDayOfMonth;
        }
    
        /**
         * 获得该月最后一天
         * 
         * @param year
         * @param month
         * @return
         */
        public static String getLastDayOfMonth(int year, int month) {
            Calendar cal = Calendar.getInstance();
            // 设置年份
            cal.set(Calendar.YEAR, year);
            // 设置月份
            cal.set(Calendar.MONTH, month - 1);
            // 获取某月最大天数
            int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            // 设置日历中月份的最大天数
            cal.set(Calendar.DAY_OF_MONTH, lastDay);
            // 格式化日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String lastDayOfMonth = sdf.format(cal.getTime());
            return lastDayOfMonth;
        }
        
        public static void main(String[] args) {
            Date a = getDate(new Date(), Calendar.MONTH, 1);
            String a1 = dateConvertDayStr(a);
            System.out.println(a1);
            
        }
    }

    package com.cjy.util;
    import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;
    public class DateTimeUtil {private static int weeks = 0;
    /** * 时间格式:yyyy-MM-dd HH:mm:ss */private static final String yyyy_MM_dd_HH__mm_ss = "yyyy-MM-dd HH:mm:ss";/** * 时间格式:yyyy-MM-dd */private static final String yyyy_MM_dd = "yyyy-MM-dd";/** * 时间格式:yyyy-MM */private static final String yyyy_MM = "yyyy-MM";
    /** * 获得当前日期与本周一相差的天数 */public static int getMondayPlus() {Calendar cd = Calendar.getInstance();// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1;if (dayOfWeek == 1) {return 0;} else {return 1 - dayOfWeek;}}
    /** * 获得本周星期日的日期 */public static String getCurrentWeekday() {weeks = 0;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获得本周一的日期 */public static String getMondayOFWeek() {weeks = 0;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获得上周星期日的日期 */public static String getPreviousWeekSunday() {weeks = 0;weeks--;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获得上周星期一的日期 */public static String getPreviousWeekday() {weeks = 0;weeks--;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获得下周星期一的日期 */public static String getNextMonday() {weeks++;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获得下周星期日的日期 */public static String getNextSunday() {int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
    /** * 获取当天日期 *  * @param dateformat */public static String getNowTime(String dateformat) {Date now = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 格式化时间格式String hehe = dateFormat.format(now);return hehe;}
    /** * 获得前天的日期 *  * @param dateformat */public static String getPreviousTimes(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, -2);// 把日期往后增加一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}
    /** * 获得昨天的日期 *  * @param dateformat */public static String getPreviousTime(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, -1);// 把日期往前减少一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}/** * 获得明天的日期 *  * @param dateformat */public static String getTomorrowTime(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, 1);// 把日期往前减少一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}
    /** * 获得当月的第一天(0时0分0秒) *  * @return 类似(2014-07-31 00:00:00) */public static String getNowFirstMonthDay() {SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());if(first != null && !first.equals("")){first += " 00:00:00";}return first;}
    /** * 获得当月的最后一天(23时59分59秒) *  * @return 类似(2014-07-31 23:59:59) */public static String getNowLastMonthDay() {SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(ca.getTime());if(last != null && !last.equals("")){last += " 23:59:59";}return last;}/** * 获得当月的第一天(0时0分0秒) *  * @return 类似(2014-07-31 00:00:00) */public static String getNowFirstMonthDay(String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());return first;}
    /** * 获得当月最后一天 *  * @param dateformat *            时间格式 * @return */public static String getNowLastMonthDay(String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(ca.getTime());return last;}
    /** * 获得指定Date类型日期月份的第一天 *  * @param date *            Date类型的时间 * @param dateformat *            时间格式 * @return */public static String getFirstMonthDay(Date date, String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.setTime(date);c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());return first;}
    /** * 获得指定Date类型日期月份的最后一天 *  * @param date *            Date类型的时间 * @param dateformat *            时间格式 * @return */public static String getLastMonthDay(Date date, String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.setTime(date);c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(c.getTime());return last;}
    public static int getCountDay(int year, int month) {month = month - 1;Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, year);cal.set(Calendar.MONTH, month);// Java月份才0开始算 6代表上一个月7月return cal.getActualMaximum(Calendar.DATE);}
    /** * 获取指定时间的月份(如果月份小于10,则返回01-09形式的时间) *  * @param date *            Date格式的时间 * @return 01-12 */public static String getMonth(Date date) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);String nowMonthTime = sdf.format(date);return nowMonthTime.substring(5, 7);}
    /** * 获取yyyy-MM格式的时间 *  * @param date *            Date格式的时间 * @param format *            指定时间格式 * @return 返回yyyy-MM格式的时间 */public static String getTimeByFormat(Date date, String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}
    /** * 将字符串时间转变为java.util.Date格式时间 *  * @param time *            字符串格式时间 * @return java.util.Date */public static Date strTimeToDate(String time) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);Date date = null;try {date = sdf.parse(time);} catch (ParseException e) {e.printStackTrace();}return date;}/** * 将字符串时间转变为java.util.Date格式时间,格式自定 *  * @param time *            字符串格式时间 * @param format * @return java.util.Date */public static Date strTimeToDate(String time,String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);Date date = null;try {date = sdf.parse(time);} catch (ParseException e) {e.printStackTrace();}return date;}
    /** * 获取指定时间的上个月的yyyy-MM格式的时间 *  * @param date * @return */public static String getLastMonth(Date date) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);Calendar calendar = Calendar.getInstance();calendar.setTime(date);int months = calendar.get(Calendar.MONTH);calendar.set(Calendar.MONTH, (months - 1));calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));Date strDateTo = calendar.getTime();return sdf.format(strDateTo);}

    /** * 判断时间date1是否在时间date2之前<br/> * 如果第一个时间小于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1<date2 返回true,date1>date2返回false,相等时等同于date1>date2 */public static boolean isDateBeforeToBoolean(String date1, String date2) {try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);return sdf.parse(date1).before(sdf.parse(date2));} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return false;}}/** * 判断时间date1是否在时间date2之后<br/> * 如果第一个时间大于于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1>date2 返回true,date1<date2返回false,相等时等同于date1<date2 */public static boolean isDateAfterToBoolean(String date1, String date2) {try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);return sdf.parse(date1).after(sdf.parse(date2));} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return false;}}
    /** * (时间比较)获取两个yyy-MM-dd格式时间中较小的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) *  * @param date1 *            要比较的第一个时间 * @param date2 *            要比较的第二个时间 * @return 返回小的时间 */public static String getBeforeTime(String date1, String date2) {if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){return null;}try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);boolean falg = sdf.parse(date1).before(sdf.parse(date2));if (falg) {return date1;} else {return date2;}} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return null;}}
    /** * (时间比较)获取两个yyy-MM-dd格式时间中较大的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) *  * @param date1 *            要比较的第一个时间 * @param date2 *            要比较的第二个时间 * @return 返回大的时间 */public static String getAfterTime(String date1, String date2) {if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){return null;}try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);boolean falg = sdf.parse(date1).after(sdf.parse(date2));if (falg) {return date1;} else {return date2;}} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return null;}}
    /** * 将时间戳转换为时间 * @param s     时间戳 * @return */    public static String stampToDate(String s){        String res;        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        long lt = new Long(s);        Date date = new Date(lt*1000);        res = simpleDateFormat.format(date);        return res;    }}

  • 相关阅读:
    Ckeditor 编辑器上传WPS图片失败问题
    vue3 部署开发环境
    docker 容器报Permission denied问题
    阿里云二级域名解析+Nginx 反向代理,整洁URL
    Linux下安装PostgreSQL
    使用docker 安装 gitlab + jenkins + sonarqube
    Linux下安装Docker
    PL/SQL
    Linux下挖矿病毒解决记录
    Dubbo学习笔记-泛化实现进行mock
  • 原文地址:https://www.cnblogs.com/juihai/p/12914979.html
Copyright © 2011-2022 走看看