日期工具类,Srting工具类,常用方法封装

public class DateUtils {

    /**
     * 从一组日期中找到最大的
     * @param dates
     * @return
     */
    public static Date max(Date[] dates) {
        Date md = dates[0];
        for (int i = 0; i < dates.length; i++) {
            md = max(md, dates[i]);
        }
        return md;
    }

    /**
     * 两者之间大的一个
     * @param d1
     * @param d2
     * @return
     */
    public static Date max(Date d1, Date d2) {
        return (d1.getTime() > d2.getTime()) ? d1 : d2;
    }

    /**
     * 从一组日期中找到最小的
     * @param dates
     * @return
     */
    public static Date min(Date[] dates) {
        Date md = dates[0];
        for (int i = 0; i < dates.length; i++) {
            md = min(md, dates[i]);
        }
        return md;
    }

    /**
     * 两者之间大小的一个
     * @param d1
     * @param d2
     * @return
     */
    public static Date min(Date d1, Date d2) {
        return (d1.getTime() > d2.getTime()) ? d2 : d1;
    }

    /**
     * 当前时间
     * 
     * @return
     */
    public static Date now() {
        return new Date();
    }

    /**
     * 当前日期,截取到天
     * 
     * @return
     */
    public static Date today() {
        return day(now());
    }

    /**
     * 当前时间
     * 
     * @return
     */
    public static String currentTime() {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        return formatter.format(new Date());
    }
    
    /**
     * 指定日期的后一天
     * 
     * @param date
     * @return
     */
    public static Date nextDay(Date date) {
        return add(date, 1);
    }

    private static Date getNextYear(Date date) {
        
        Calendar currentDate = Calendar.getInstance();
        currentDate.setTime(date);
        if ((((currentDate.get(Calendar.YEAR) % 4) == 0) 
                && ((currentDate.get(Calendar.YEAR) % 100) != 0)) || ((currentDate.get(Calendar.YEAR) % 400) == 0)){
            Calendar specialDate = Calendar.getInstance();
            specialDate.setTime(date);
            specialDate.set(currentDate.get(Calendar.YEAR), 1, 29);
            
            if (!currentDate.before(specialDate)&&!currentDate.after(specialDate)){
                return add(addYear(date, 1),-1);
            }else{
                return addYear(date, 1);
            }
        }
        
        Calendar nextYear = Calendar.getInstance();
        nextYear.setTime(addYear(date, 1));
        
        if ((((nextYear.get(Calendar.YEAR) % 4) == 0) 
                && ((nextYear.get(Calendar.YEAR) % 100) != 0)) || ((nextYear.get(Calendar.YEAR) % 400) == 0)){
            Calendar specialDate = Calendar.getInstance();
            specialDate.setTime(date);
            specialDate.set(currentDate.get(Calendar.YEAR), 1, 28);
            if (!currentDate.before(specialDate)&&!currentDate.after(specialDate)){
                return add(addYear(date, 1),1);
            }else{
                return addYear(date, 1);    
            }
        }
        return addYear(date, 1);
    }
    /**
     * 指定日期的后一年
     * 
     * @param date
     * @return
     */
    public static Date nextYear(Date date) {
        return day(getNextYear(date));
    }
    
    /**
     * 截取到天
     *
     * @param date
     * @return
     */
    public static Date day(Date date) {
        return trunc(date, "D");
    }

    /**
     * 截取到月:当月第一天
     * 
     * @param date
     * @return
     */
    public static Date month(Date date) {
        return trunc(date, "M");
    }

    /**
     * 给定日期增加天数
     * 
     * @param date
     * @param days
     * @return
     */
    public static Date add(Date date, int days) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) + days);
        return c.getTime();
    }
    
    public static Date minus(Date date, int days) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) - days);
        return c.getTime();
    }
    
    /**
     * 给定日期增加秒数
     * 
     * @param date
     * @param days
     * @return
     */
    public static Date addSeconds(Date date, int seconds) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        //c.set(Calendar.SECOND, c.get(Calendar.SECOND) + seconds);
        c.add(Calendar.SECOND, seconds);
        return c.getTime();
    }
    /**
     * 给定日期增加分钟数
     * 
     * @param date
     * @param days
     * @return
     */
    public static Date addMinutes(Date date, int Minutes) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        //c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) + Minutes);
        c.add(Calendar.MINUTE, Minutes);
        return c.getTime();
    }
    
    /**
     * 给定日期减小时数
     * 
     * @param date
     * @param days
     * @return
     */
    public static Date minusHours(Date date, int hours) {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.HOUR, -hours);
        return c.getTime();
    }
    
    public static String minusHoursString(Date date, int hours,String pattern) {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.HOUR, -hours);
        return formatStringFromDate(c.getTime(),pattern);        
    }
    
    

    /**
     * 是否是一天的最后一秒,
     * 也就是****-**-** 23:59:59
     * 
     * @param date
     * @param seconds
     * @return
     */
    public static boolean islastSecondsTime(Date date) {
        int hour = date.getHours();
        int minute = date.getMinutes();
        int second = date.getSeconds();
        
        return hour==23 && minute==59 && second==59;
    }
    
    /**
     * 给定日期增加月数, 算法如下:
     *             1. 计算前的日期为非月底, 只按照日期加了之后, 计算后的日期的天没有超过这个月的最后一天, 则正常加月即可.
     *                     比如2012-01-01 + 1月 == 2012-02-01
     *             2. 如果计算前的日期就是为月底, 则不管怎么样, 其结果一定是下个月的月底.
     *                     比如2012-01-31 + 1月 == 2012-02-29
     *                         2012-02-29 + 1月 == 2012-03-31
     * 
     * @param date
     * @param days
     * @return
     */
    // LL UPDATE START 20140611
    // 重构:解决MIT满期日BUG
//    public static Date addMonth(Date date, int months) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(date);
//            
//        Calendar firstDayOfCalcMonthC = Calendar.getInstance();
//        firstDayOfCalcMonthC.set(Calendar.YEAR, c.get(Calendar.YEAR));
//        firstDayOfCalcMonthC.set(Calendar.MONTH, c.get(Calendar.MONTH) + months);
//        firstDayOfCalcMonthC.set(Calendar.DAY_OF_MONTH, 1);
//        Date lastDayOfCalcMonth = lastDayOfMonth(firstDayOfCalcMonthC.getTime());
//        
//        Date endMonthDay = lastDayOfMonth(c.getTime());
//        if(c.getTime().compareTo(endMonthDay) == 0)
//        {
//            return lastDayOfCalcMonth;
//        }
//        
//        c.set(Calendar.MONTH, c.get(Calendar.MONTH) + months);
//        Date dateAfterAdded = c.getTime();
//        
//        if(dateAfterAdded.compareTo(lastDayOfCalcMonth) > 0)
//        {
//            return lastDayOfCalcMonth;
//        }
//        return dateAfterAdded;
//    }
    public static Date addMonth(Date date, int months) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);

        // 参数时间是否为月末
        boolean ifMaxDayOfMonth = (c.getActualMaximum(Calendar.DAY_OF_MONTH) == c.get(Calendar.DAY_OF_MONTH));
        // 增加月数
        c.add(Calendar.MONTH, months);
        
        if(ifMaxDayOfMonth) {
            c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        }
        
        return c.getTime();
    }
    // LL UPDATE END
    
    /**
     * 给定日期增加年数
     * 
     * @param date
     * @param days
     * @return
     */
    public static Date addYear(Date date, int years) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.YEAR, c.get(Calendar.YEAR) + years);
        return c.getTime();
    }

    /**
     * 指定日期的当月最后一天
     * 
     * @param date
     * @return
     */
    public static Date lastDayOfMonth(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        return c.getTime();
    }
    
    /**
     * 指定日期的次月最后一天
     * 
     * @param date
     * @return
     */
    public static Date lastDayOfNextMonth(Date date) {
        return trunc(lastDayOfMonth(addMonth(date, 1)),"D");
    }
    
    /**
     * 指定日期的次月1日
     * 
     * @param date
     * @return
     */
    public static Date firstDayOfNextMonth(Date date) {
        return trunc(add(lastDayOfMonth(date),1),"D");
        
    }

    /**
     * 指定日期的当月第一天
     * 
     * @param date
     * @return
     */
    public static Date firstDayOfMonth(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
        return c.getTime();
    }

    /**
     * 指定日期的当年第一天
     * 
     * @param date
     * @return
     */
    public static Date firstDayOfYear(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_YEAR, c.getActualMinimum(Calendar.DAY_OF_YEAR));
        return c.getTime();
    }

    /**
     * 指定日期的当年最后一天
     * 
     * @param date
     * @return
     */
    public static Date lastDayOfYear(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.DAY_OF_YEAR, c.getActualMaximum(Calendar.DAY_OF_YEAR));
        return c.getTime();
    }
    /**
     * 计算两个日期之间月份数
     * @param date1
     * @param date2
     * @return
     */
    public static int diffMonths(Date date2, Date date1){
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(date1);
        c2.setTime(date2);
        int year1 = c1.get(Calendar.YEAR);
        int year2 = c2.get(Calendar.YEAR);
        int month1 = c1.get(Calendar.MONTH)+1;
        int month2 = c2.get(Calendar.MONTH)+1;
        
        return (year2-year1)*12+(month2-month1);
    }
    /**
     * 比较日期天数之差,第一个时间减去第二时间
     * 
     * @param date1
     * @param date2
     * @return
     */
    public static double diffDays(Date date1, Date date2) {
        long diff = date1.getTime() - date2.getTime();
        BigDecimal bd = new BigDecimal(diff);
        // 尽量保持精度16
        return bd.divide(new BigDecimal(D), 16,BigDecimal.ROUND_HALF_UP).doubleValue();
        // return Calculate.divide(diff, D);
    }

    /**
     * 天数计算,不足一天不算
     * 
     * @param date1
     * @param date2
     * @return
     */
    public static int fullDays(Date date1, Date date2) {
        return (int) Math.floor(diffDays(date1, date2));
    }

    /**
     * 天数计算,不足一天算一天
     * 
     * @param date1
     * @param date2
     * @return
     */
    public static int days(Date date1, Date date2) {
        return (int) Math.ceil(diffDays(date1, date2));
    }

    /**
     * 对时间精确度作trunc,使用String来作为pattern,支持以下情况
     * <ul>
     * <li>S 秒</li>
     * <li>M 分钟</li>
     * <li>H 小时</li>
     * <li>D 天</li>
     * <li><i>W 周</i></li>
     * </ul>
     * 
     * @param date
     * @param pattern:
     *            s, m, h, d, w
     * @return
     */
    public static Date trunc(Date date, String pattern) {
        // 采用比较笨的截取方式简化处理,按time计算涉及时区等各种问题比较麻烦
        SimpleDateFormat format = new SimpleDateFormat(getPattern(pattern
                .toUpperCase()));
        try {
            return format.parse(format.format(date));
        } catch (ParseException e) {
            // Shit Happen
            throw new RuntimeException("不能处理的trunc格式" + pattern, e);
        }
    }

    private static Map patterns = new HashMap();
    static {
        patterns.put("SS", "yyyy-MM-dd HH:mm:ss");
        patterns.put("S", "yyyyMMdd HH:mm:ss");
        patterns.put("M", "yyyyMMdd HH:mm");
        patterns.put("H", "yyyyMMdd HH");
        patterns.put("D", "yyyyMMdd");
        patterns.put("DD", "yyyy-MM-dd");
        patterns.put("SSS", "yyyyMMddHHmmssSSS");
    }

    private static String getPattern(String pattern) {
        String p = (String) patterns.get(pattern);
        if (null == p) {
            throw new java.lang.IllegalArgumentException("不能处理的trunc格式"
                    + pattern);
        }
        return p;
    }

    /**
     * 获取指定的字符串日期表达形式
     * 
     * @param date    指定日期
     * @param format  希望返回的字符串格式
     *       目前支持如下格式:   <br> 1. "yyyy-MM-dd HH:mm:ss" <br>
     *                             2. "yyyy-MM-dd HH:mm" <br>
     *                             3. "yyyy-MM-dd" <br>
     *                             4. "yyyyMMdd" <br>
     * 
     * @return 返回一个字符串的日期表达或者null
     */
    public static String formatStringFromDate(Date date, String format)
    {
        String format1 = "^[y]{4}-[M]{2}-[d]{2} [H]{2}:[m]{2}:[s]{2}$";
        String format2 = "^[y]{4}-[M]{2}-[d]{2} [H]{2}:[m]{2}$";
        String format3 = "^[y]{4}-[M]{2}-[d]{2}$";
        String format4 = "^[y]{4}[M]{2}[d]{2}$";
        String format5 = "^[y]{4}[M]{2}[d]{2}[H]{2}[m]{2}[s]{2}$";
        String format6 = "^[y]{4}[M]{2}[d]{2}[H]{2}[m]{2}[s]{2}[SSS]{3}$";
        if(Pattern.matches(format1, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        
        if(Pattern.matches(format2, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        
        if(Pattern.matches(format3, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        
        if(Pattern.matches(format4, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        
        if(Pattern.matches(format5, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        if(Pattern.matches(format6, format))
        {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            return dateFormat.format(date);
        }
        return null;
    }
    
    public static final long S = 1000;

    public static final long M = S * 60;

    public static final long H = M * 60;

    public static final long D = H * 24;

    public static final long W = D * 7;
    
    /**
     * 将指定时间的时, 分, 秒 字段截去, 即取指定天的开始时间.
     * eg: 如果输入的是 "Tue Aug 10 14:52:46 CST 2010" 这个时间
     *        <br> 则会返回 "Tue Aug 10 00:00:00 CST 2010" 这个时间
     * 
     * @param date
     * @return
     */
    public static Date getStartOfDate(Date date)
    {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

        return calendar.getTime();
    }
    
    /**
     * 取指定天的结束时间.
     * eg: 如果输入的是 "Tue Aug 10 14:52:46 CST 2010" 这个时间
     *        <br> 则会返回 "Tue Aug 10 23:59:59 CST 2010" 这个时间
     * 
     * @param date
     * @return
     */
    public static Date getEndOfDate(Date date)
    {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);

        
        return calendar.getTime();
    }
    
    
    /**
     * 
     * @param dateValue 字符串表示的日期值
     *         目前支持如下格式:<br>  1. "yyyy-MM-dd HH:mm:ss" <br>
     *                             2. "yyyy-MM-dd HH:mm" <br>
     *                             3. "yyyy-MM-dd" <br>
     *                             4. "yyyyMMdd" <br>
     *                          4. "yyyyMMddHHmmss" <br>
     * 
     * @return 返回一个日期值或者null.
     */
    public static Date parseDate(String dateValue)    {
        try{
            String format1 = "yyyy-MM-dd HH:mm:ss";
            String dateValueFormat1 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d$";

            String format2 = "yyyy-MM-dd HH:mm";
            String dateValueFormat2 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d$";

            String format3 = "yyyy-MM-dd";
            String dateValueFormat3 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d$";

            String format4 = "yyyyMMdd";
            String dateValueFormat4 = "^\\d\\d\\d\\d\\d\\d\\d\\d$";

            String format5 = "yyyyMMddHHmmss";
            String dateValueFormat5 = "^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d$";

            if (Pattern.matches(dateValueFormat1, dateValue))
            {
                SimpleDateFormat dateFormat = new SimpleDateFormat(format1);
                return dateFormat.parse(dateValue);
            }

            if (Pattern.matches(dateValueFormat2, dateValue))
            {
                SimpleDateFormat dateFormat = new SimpleDateFormat(format2);
                return dateFormat.parse(dateValue);
            }

            if (Pattern.matches(dateValueFormat3, dateValue))
            {
                SimpleDateFormat dateFormat = new SimpleDateFormat(format3);
                return dateFormat.parse(dateValue);
            }

            if (Pattern.matches(dateValueFormat4, dateValue))
            {
                SimpleDateFormat dateFormat = new SimpleDateFormat(format4);
                return dateFormat.parse(dateValue);
            }

            if (Pattern.matches(dateValueFormat5, dateValue))
            {
                SimpleDateFormat dateFormat = new SimpleDateFormat(format5);
                return dateFormat.parse(dateValue);
            }
        }catch(ParseException e){
            LogUtil.error(DateUtils.class.getName(), "时间转换错误");
        }
        return null;
    }
    
    /**
     * 获取时分秒
     * @param date
     * @return
     */
    public static String getTime(Date date){
        SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
        return format.format(date);
    }
    
    /**
     * 获取完整的年份
     * 
     * @param date
     * @return
     */
    public static String getFullYearStr(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return String.valueOf(calendar.get(Calendar.YEAR));
    }
    
    
    public static int getFullYearInt(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.YEAR);
    }
    
    /**
     * 返回01, 02, 03, ... 12等等月份
     * 
     * @param date
     * @return
     */
    public static String getFullMonthStr(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        
        int month = calendar.get(Calendar.MONTH) + 1;
        if(month <= 9)
        {
            return "0" + month;
        }
        return String.valueOf(month);
    }
    
    public static int getFullMonthInt(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MONTH)+1;
    }
    
    public static String getFullDayStr(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        
        int day = calendar.get(Calendar.DATE);
        if(day <= 9)
        {
            return "0" + day;
        }
        return String.valueOf(day);
    }
    
    public static int getFullDayInt(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DATE)+1;
    }
    
    
    
    
   
    
    public static String getDateNoSecondOrSecond(Date date){
        boolean isZeroDate = trunc(date,"DD").compareTo(date)==0;
        
        if (isZeroDate){
            return formatStringFromDate(date,(String)patterns.get("DD"));
        }else{
            return formatStringFromDate(date,(String)patterns.get("SS"));
        }
    }
    
    /**
     * 获得正确的日期,如果日期格式不对返回null
     * @param dateValue
     * @param format
     * @return Date
     * @throws Exception
     */
    public static Date getValidDate(String dateValue,String format) {
        if(dateValue==null||dateValue.trim().length()==0) {
            return null;
        }
        try {
            dateValue = dateValue.trim();
            SimpleDateFormat formater = new SimpleDateFormat(format);
            Date date = formater.parse(dateValue);
            if(dateValue.equals(formater.format(date))) {
                return date;
            }
        }
        catch(Exception e) {
            e.fillInStackTrace();
        }
        return null;
    }
    
    /**
     * 计算年龄
     * @param birth
     * @return
     */
    public static int calculateAge(String birth,String effDate){
            int birthYear = Integer.parseInt(birth.substring(0,4));
            int birthDay = Integer.parseInt(birth.substring(4));
            
            int nowYear = Integer.parseInt(effDate.substring(0,4));
            int nowDay = Integer.parseInt(effDate.substring(4));
            
            //比较生日和有效日期的月份加天数的和在一年之年的总天数的差值
            if(birthDay > nowDay){
               return nowYear - birthYear - 1;
            }
            else{
               return nowYear - birthYear;
            }
         }
    
      /**
         * 将String转换为Date
         * @param dateValue
         * @return Date
         * @throws Exception
         */
        public static Date getStringToDate(String dateValue,String form) {
            if(dateValue==null||dateValue.trim().length()==0) {
                return null;
            }
            if (form.equals(patterns.get("SS")) || form.equals(patterns.get("S")) || form.equals(patterns.get("M")) || form.equals(patterns.get("H")) || form.equals(patterns.get("D")) || form.equals(patterns.get("DD")) || form.equals(patterns.get("SSS"))) {
                try {
                    dateValue = dateValue.trim();
                    SimpleDateFormat formater=null; 
                    if(dateValue.contains("-") || dateValue.contains("/")){
                     formater = new SimpleDateFormat(form);
                    }else{
                        return null;
                    }
                    Date date = formater.parse(dateValue);
                    if(dateValue.equals(formater.format(date))) {
                        return date;
                    }
                }
                catch(Exception e) {
                    e.fillInStackTrace();
                }
            }
            return null;
        }
         /**
         * 将Date转换为String
         * @param dateValue
         * @return Date
         * @throws Exception
         */
        public static String getDateToString(Date dateValue) {
            if(dateValue==null|| "".equals(dateValue)) {
                return null;
            }
            try {
                SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
                String date = formater.format(dateValue);
                    return date;
            }
            catch(Exception e) {
                e.fillInStackTrace();
            }
            return null;
        }
        /**
         * 将Date转换为String
         * @param dateValue
         * @return Date
         * @throws Exception
         */
        public static String gettoString(Date dateValue) {
            if(dateValue==null|| "".equals(dateValue)) {
                return null;
            }
            try {
                SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
                String date = formater.format(dateValue);
                    return date;
            }
            catch(Exception e) {
                e.fillInStackTrace();
            }
            return null;
        }
         /**
         * 获取当前季度的第一天
         * @param dateValue
         * @return String
         * @throws Exception
         */
    public static String getCurrentQuarterStatrtTime(){
        Calendar c=Calendar.getInstance();
        int currentMonth=c.get(Calendar.MONTH)+1;
        String now =null;
        try {
            if(currentMonth>=1 && currentMonth<=3){
                c.set(Calendar.MONTH,0);
            }
            if(currentMonth>=4 && currentMonth<=6){
                c.set(Calendar.MONTH,3);
            }
            if(currentMonth>=7 && currentMonth<=9){
                c.set(Calendar.MONTH,6);
            }
            if(currentMonth>=10 && currentMonth<=12){
                c.set(Calendar.MONTH,9);
            }
            c.set(Calendar.DATE, 1);
            now=getDateToString(c.getTime());
            return now;
        } catch (Exception e) {
            e.fillInStackTrace();
            return null;
        }
    }
     /**
     * 根据输入的季度得到季度的第一天
     * @param dateValue
     * @return String
     * @throws Exception
     */
    public static String getCurrentQuarter(int quarter){
        Calendar c=Calendar.getInstance();
        String now =null;
        try {
            if(quarter==1){
                c.set(Calendar.MONTH,0);
            }else
            if(quarter==2){
                c.set(Calendar.MONTH,3);
            }else
            if(quarter==3){
                c.set(Calendar.MONTH,6);
            }else
            if(quarter==4){
                c.set(Calendar.MONTH,9);
            }else{
                return null;
            }
            c.set(Calendar.DATE, 1);
            now=getDateToString(c.getTime());
            return now;
        } catch (Exception e) {
            e.fillInStackTrace();
            return null;
        }
    }
     /**
     * 根据输入的时间获取当前日期的年-月-日
     * @param dateValue
     * @return String
     * @throws Exception
     */
    public static Date getYearMonthDayTime(String time){
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = formatter.parse(time);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
        return null;
    }
    public static String formatDate(Date date, String pattern){
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        return format.format(date);        
    }
    
    public static String formatDate(Date date){
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        return format.format(date);        
    }
    
    public static Date parseDate(String time, String format) throws Exception{
        SimpleDateFormat formater = new SimpleDateFormat(format);
        return formater.parse(time);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值