日期工具大全

<!-- String  To Date --> 

public static Date strToDate(String strDate) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        return format.parse(strDate);
    }

 

public static Date objToDate(Object objDate) throws Exception {
        String dateString = objDate.toString();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        return format.parse(dateString);
    }

<!-- String的日期想转成Date类型的格式-->

public static Date strToDate(String strDate, String strFormat) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat(strFormat);
        return format.parse(strDate);
    }

 public static Date formatDateToDate(Date idate, String strFormat) throws ParseException {

        String ddate = null;
        try {
            ddate = DateUtils.format(idate);

        } catch (ApplicationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return DateUtils.strToDate(ddate, strFormat);

    }

<!-- Date To String -->


    public static String format(Date iDate) throws ApplicationException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        return format.format(iDate);
    }

  public static String format(Date iDate, String strFormat) {
        SimpleDateFormat format = new SimpleDateFormat(strFormat);
        return format.format(iDate);
    }

 
    public static Date[] getFirstAndLastDays(String yyyy) {
        Date date = getDateFromPattern("yyyy-MM-dd", yyyy + "-01-01");
        String dateStr = formatDate(date);
        String year = dateStr.substring(0, 4);

        // 当年第一天的字符串形式。
        String firstDayStr = dateStr.replaceFirst(year + "-//d{2}-//d{2}", year + "-01-01");

        // 当年最后一天的字符串形式。
        String lastDayStr = dateStr.replaceFirst(year + "-//d{2}-//d{2}", year + "-12-31");

        Date firstDay = formatString(firstDayStr);
        Date lastDay = formatString(lastDayStr);
        return new Date[] { firstDay, lastDay };
    }

 
    public static Date getDateFromPattern(String parrern, String str) {
        if (str == null || ("").equals(str))
            // if (StringUtils.isEmpty(str))
            return null;
        SimpleDateFormat fmt = new SimpleDateFormat(parrern);
        try {
            return fmt.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

 

 
    public static Date formatString(String dateStr) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return sdf.parse(dateStr);
        } catch (Exception e) {
            return null;
        }
    }

    public static Date formatFullString(String dateStr) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return sdf.parse(dateStr);
        } catch (Exception e) {
            return null;
        }
    }


   
    public static String formatDate(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(date);
    }

 

 
    public static int getDayBetween(java.util.Date d1, java.util.Date d2) {
        // return (int)(d1.getTime()-d2.getTime())/(1000*60*60*24);
        Date[] d = new Date[2];
        d[0] = d1;
        d[1] = d2;
        Calendar[] cal = new Calendar[2];
        for (int i = 0; i < cal.length; i++) {
            cal[i] = Calendar.getInstance();
            cal[i].setTime(d[i]);
            cal[i].set(Calendar.HOUR_OF_DAY, 0);

 


   
    public static Date getBeforDate() {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DATE);
        if (month > 5) {
            String aString = year + "-" + (month - 5) + "-" + day;
            Date date = formatString(aString);
            return date;
        }
        String bString = (year - 1) + "-" + (month + 12 - 5) + "-" + day;
        Date dates = formatString(bString);
        return dates;
    }

 

 

 

 // 增加或减少的天数
    public static Date addDay(int num) {
        Calendar startDT = Calendar.getInstance();
        startDT.setTime(new Date());
        startDT.add(Calendar.DATE, num);
        return startDT.getTime();
    }

    // 增加或减少天数 某个日期
    public static Date addDay(Date date, int num) {
        Calendar startDT = Calendar.getInstance();
        startDT.setTime(date);
        startDT.add(Calendar.DATE, num);
        return startDT.getTime();
    }

 

 // 增加或减少月数 当天
    public static Date addMonth(int num) {
        Calendar startDT = Calendar.getInstance();
        startDT.setTime(new Date());
        startDT.add(Calendar.MONTH, num);
        return startDT.getTime();
    }

    // 返回java.sql.date
    public static java.sql.Date getFullSqlDate(Date date) {
        return new java.sql.Date(date.getTime());
    }

    // 增加或减少月数 某个日期
    public static Date addMonth(Date date, int num) {
        Calendar startDT = Calendar.getInstance();
        startDT.setTime(date);
        startDT.add(Calendar.MONTH, num);
        return startDT.getTime();
    }

    // 天数差
    public static int getQuot() {
        Calendar cc = Calendar.getInstance();
        cc.setTime(new Date());
        int currmum = cc.get(Calendar.DAY_OF_MONTH); // 当月的第几天
        int maxmum = cc.getActualMaximum(Calendar.DAY_OF_MONTH); // 当月最大天数
        return (maxmum - currmum);
    }

 


    //
    public static Date getLastDay() {
        int quot = getQuot(); // 天数差
        Date lastDate = addDay(quot); // 最后一天
        return lastDate;
    }

    public static Date changeDateToUtil(java.sql.Date dt) {
        Date dtTemp = new Date(dt.getTime());
        return dtTemp;
    }

<!-- Date To SqlDate -->

    public static java.sql.Date changeDateToSql(Date dt) {
        java.sql.Date dtTemp = new java.sql.Date(dt.getTime());
        return dtTemp;
    }
 
    public static Date getLastDateByMonth(Date date) {
        Calendar now = Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.MONTH, now.get(Calendar.MONTH) + 1);
        now.set(Calendar.DATE, 1);
        now.set(Calendar.DATE, now.get(Calendar.DATE) - 1);
        now.set(Calendar.HOUR, 11);
        now.set(Calendar.MINUTE, 59);
        now.set(Calendar.SECOND, 59);
        return now.getTime();
    }

   
    public static Date getFirstDateByMonth(Date date) {
        Calendar now = Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.DATE, 0);
        now.set(Calendar.HOUR, 12);
        now.set(Calendar.MINUTE, 0);
        now.set(Calendar.SECOND, 0);
        return now.getTime();
    }

   
    public static int getDayByMonth(Date date, int months) {
        int tempMonth = date.getMonth() + 1 + months;
        int years = tempMonth / 12;
        int month = tempMonth % 12;
        Calendar time = Calendar.getInstance();
        time.clear();
        time.set(Calendar.YEAR, date.getYear() + years);
        time.set(Calendar.MONTH, month - 1);// Calendar对象默认一月为0
        int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
        return day;
    }    public static Date getDateByAddDays(Date date, int days) {
        Calendar now = Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.DATE, now.get(Calendar.DATE) + days);
        return now.getTime();
    }

 


            cal[i].set(Calendar.MINUTE, 0);
            cal[i].set(Calendar.SECOND, 0);
        }
        long m = cal[0].getTime().getTime();
        long n = cal[1].getTime().getTime();
        return (int) ((long) (m - n) / 1000);
    }
   
    @SuppressWarnings("deprecation")
    public static Date getFristDayOfMonth(Date sDate1) {
        Calendar cDay1 = Calendar.getInstance();
        cDay1.setTime(sDate1);
        final int fristDay = cDay1.getActualMinimum(Calendar.DAY_OF_MONTH);
        Date fristDate = cDay1.getTime();
        fristDate.setDate(fristDay);
        return fristDate;
    }

   
    @SuppressWarnings("deprecation")
    public static Date getLastDayOfMonth(Date sDate1) {
        Calendar cDay1 = Calendar.getInstance();
        cDay1.setTime(sDate1);

 

 

 
    public static Timestamp changeDateToTime(Date dt) {
        String str = format(dt, "yyyy-MM-dd HH:mm:ss");
        return Timestamp.valueOf(str);
    }

   
    public static int getLastDayByMonth(Date date, int Months) {
        return getSecondsBetween(getDateByMonth(new Date(), Months), date) / 86400;
    }

 

   // 获得周统计的统计时间
    public static Date getStatDateByWeek(Long year, Long month, Long week) throws Exception {
        Date date = strToDate(year + "-" + month, "yyyy-MM");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.DATE, cal.get(Calendar.DATE) + (7 + (Calendar.MONDAY) - cal.get(Calendar.DAY_OF_WEEK)) % 7
                + ((Long) (7 * week)).intValue());
        return cal.getTime();
    }

    // 获得月统计的统计时间
    public static Date getStatDateByMonth(Long year, Long month) throws ParseException {
        Date date = strToDate(year + "-" + month, "yyyy-MM");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
        return getFirstDayByMonth(cal.getTime());
    }

    // 获得季统计的统计时间
    public static Date getStatDateByQuarter(Long year, Long quarter) throws ParseException {
        Date date = strToDate(year + "-" + (quarter * 3), "yyyy-MM");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
        return getFirstDayByMonth(cal.getTime());
    }

    // 获得半年统计的统计时间
    public static Date getStatDateBySemi(Long year, Long semi) throws ParseException {
        Date date = strToDate(year + "-" + (semi * 6), "yyyy-MM");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
        return getFirstDayByMonth(cal.getTime());
    }

    // 获得年统计的统计时间
    public static Date getStatDateByYear(Long year) throws ParseException {
        Date date = strToDate((year + 1) + "-01-01", "yyyy-MM-dd");
        return getFirstDayByMonth(date);
    }
        final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);
        Date lastDate = cDay1.getTime();
        lastDate.setDate(lastDay);
        return lastDate;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值