|  | @@ -0,0 +1,1648 @@
 | 
											
												
													
														|  | 
 |  | +package com.hcloud.microserver.commoncore.util;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +import org.apache.commons.lang.StringUtils;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +import java.math.BigDecimal;
 | 
											
												
													
														|  | 
 |  | +import java.text.DateFormat;
 | 
											
												
													
														|  | 
 |  | +import java.text.ParseException;
 | 
											
												
													
														|  | 
 |  | +import java.text.SimpleDateFormat;
 | 
											
												
													
														|  | 
 |  | +import java.util.*;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 描述:日期处理常用类
 | 
											
												
													
														|  | 
 |  | + *
 | 
											
												
													
														|  | 
 |  | + * @author yfw
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +public class DateUtils {
 | 
											
												
													
														|  | 
 |  | +    public static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 | 
											
												
													
														|  | 
 |  | +    public static SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM");
 | 
											
												
													
														|  | 
 |  | +    public static SimpleDateFormat dateFormatDB = new SimpleDateFormat("yyyyMMdd");// 数据库使用的日期格式  
 | 
											
												
													
														|  | 
 |  | +    public static SimpleDateFormat dataTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat SDF_YMD = new SimpleDateFormat("yyyyMMdd");
 | 
											
												
													
														|  | 
 |  | +    public static final String Y_M_D = "yyyy-MM-dd";
 | 
											
												
													
														|  | 
 |  | +    public static final String Y_M_D_HM = "yyyy-MM-dd HH:mm";
 | 
											
												
													
														|  | 
 |  | +    public static final String Y_M_D_HMS = "yyyy-MM-dd HH:mm:ss";
 | 
											
												
													
														|  | 
 |  | +    public static final String YMD = "yyyyMMdd";
 | 
											
												
													
														|  | 
 |  | +    public static final String YMDHM = "yyyyMMddHHmm";
 | 
											
												
													
														|  | 
 |  | +    public static final String YMDHMS = "yyyyMMddHHmmss";
 | 
											
												
													
														|  | 
 |  | +    public static final String ymd = "yyyy/MM/dd";
 | 
											
												
													
														|  | 
 |  | +    public static final String ymd_HM = "yyyy/MM/dd HH:mm";
 | 
											
												
													
														|  | 
 |  | +    public static final String ymd_HMS = "yyyy/MM/dd HH:mm:ss";
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 两时间相减 返回
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startTime
 | 
											
												
													
														|  | 
 |  | +     * @param endTime
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getSubTwoTime(String endTime, String startTime) {
 | 
											
												
													
														|  | 
 |  | +        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            Date d1 = df.parse(startTime);
 | 
											
												
													
														|  | 
 |  | +            Date d2 = df.parse(endTime);
 | 
											
												
													
														|  | 
 |  | +            long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别  
 | 
											
												
													
														|  | 
 |  | +            long days = diff / (1000 * 60 * 60 * 24);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            long hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
 | 
											
												
													
														|  | 
 |  | +            long minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
 | 
											
												
													
														|  | 
 |  | +//    System.out.println(""+days+"天"+hours+"小时"+minutes+"分");  
 | 
											
												
													
														|  | 
 |  | +            if (hours < 0) {
 | 
											
												
													
														|  | 
 |  | +                hours = new BigDecimal(hours).abs().intValue();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            if (minutes < 0) {
 | 
											
												
													
														|  | 
 |  | +                minutes = new BigDecimal(minutes).abs().intValue();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            return "" + days + "-" + hours + "-" + minutes;
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 两时间相减 返回
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startTime
 | 
											
												
													
														|  | 
 |  | +     * @param endTime
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getSubTwoTimeYY(String endTime, String startTime) {
 | 
											
												
													
														|  | 
 |  | +        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            Date d1 = df.parse(startTime);
 | 
											
												
													
														|  | 
 |  | +            Date d2 = df.parse(endTime);
 | 
											
												
													
														|  | 
 |  | +            long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别  
 | 
											
												
													
														|  | 
 |  | +            long days = diff / (1000 * 60 * 60 * 24);
 | 
											
												
													
														|  | 
 |  | +            return "" + days;
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 两时间相减 返回
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startTime
 | 
											
												
													
														|  | 
 |  | +     * @param endTime
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getSubTwoTime1(String endTime, String startTime) {
 | 
											
												
													
														|  | 
 |  | +        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            Date d1 = df.parse(startTime);
 | 
											
												
													
														|  | 
 |  | +            Date d2 = df.parse(endTime);
 | 
											
												
													
														|  | 
 |  | +            long diff = d2.getTime() - d1.getTime();//这样得到的差值是微秒级别  
 | 
											
												
													
														|  | 
 |  | +            long days = diff / (1000 * 60 * 60 * 24);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            long hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
 | 
											
												
													
														|  | 
 |  | +            long minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
 | 
											
												
													
														|  | 
 |  | +//    System.out.println(""+days+"天"+hours+"小时"+minutes+"分");  
 | 
											
												
													
														|  | 
 |  | +            if (hours < 0) {
 | 
											
												
													
														|  | 
 |  | +                hours = new BigDecimal(hours).abs().intValue();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            if (minutes < 0) {
 | 
											
												
													
														|  | 
 |  | +                minutes = new BigDecimal(minutes).abs().intValue();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            return "" + days + "-" + hours + "-" + minutes;
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * @param dateTime yyyy-MM-dd HH:mm:ss
 | 
											
												
													
														|  | 
 |  | +     * @return unix 时间
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getUnixTimeStamp(String dateTime) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            c.setTime(dataTimeFormat.parse(dateTime));
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return (c.getTimeInMillis() / 1000) + "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * unix 时间 转换
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param timestampString 1252639886
 | 
											
												
													
														|  | 
 |  | +     * @param formats
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String gerUnixTime2String(String timestampString, String formats) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isBlank(timestampString) || "null".equals(timestampString)) {
 | 
											
												
													
														|  | 
 |  | +            return "";
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Long timestamp = Long.parseLong(timestampString) * 1000;
 | 
											
												
													
														|  | 
 |  | +        String date = new SimpleDateFormat(formats).format(new Date(timestamp));
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * @param
 | 
											
												
													
														|  | 
 |  | +     * @return unix 时间
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrentUnixTimeStamp() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(new Date());
 | 
											
												
													
														|  | 
 |  | +        return (c.getTimeInMillis() / 1000) + "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    public static String formatDateTime(Date date) {
 | 
											
												
													
														|  | 
 |  | +        return dataTimeFormat.format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 创建一个"yyyy-MM-dd"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyy-MM-dd"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat newLongYMDFormat() {
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat("yyyy-MM-dd");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 创建一个"yyyy-MM-dd HH:mm:ss"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyy-MM-dd HH:mm:ss"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat newLongYMDHMSFormat() {
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * "yyyyMMddHHmmss"格式的日期转换为"yyyy-MM-dd HH:mm:ss"格式的日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param shortYMDHMS "yyyyMMddHHmmss"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyy-MM-dd HH:mm:ss"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String toLongYMDHMS(String shortYMDHMS) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +        return newLongYMDHMSFormat().format(newShortYMDHMSFormat().parse(shortYMDHMS));
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得"yyyy-MM-dd"格式的当前日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return 返回"yyyy-MM-dd"格式的当前日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getLongYMD() {
 | 
											
												
													
														|  | 
 |  | +        return newLongYMDFormat().format(new Date());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 2015年12月21日
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getLongYMDChina() {
 | 
											
												
													
														|  | 
 |  | +        String str = newLongYMDFormat().format(new Date());
 | 
											
												
													
														|  | 
 |  | +        return str.split("-")[0] + "年" + str.split("-")[1] + "月" + str.split("-")[2] + "日";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 创建一个"yyyyMMdd"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMMdd"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat newShortYMDFormat() {
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat("yyyyMMdd");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 创建一个"yyyyMMddHHmmss"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMMddHHmmss"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat newShortYMDHMSFormat() {
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat("yyyyMMddHHmmss");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得"yyyyMMddHHmmss"格式的当前日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return 返回"yyyyMMddHHmmss"格式的当前时间
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getShortYMDHMS() {
 | 
											
												
													
														|  | 
 |  | +        return newShortYMDHMSFormat().format(new Date());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * "yyyyMMdd"格式的日期转换为"yyyy-MM-dd"格式的日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param shortYMD "yyyyMMdd"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyy-MM-dd"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String toLongYMD(String shortYMD) {
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            return newLongYMDFormat().format(newShortYMDFormat().parse(shortYMD));
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            // Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            return "";
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:生成日期yyyyMMdd
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDbDate() {
 | 
											
												
													
														|  | 
 |  | +        return dateFormatDB.format(new Date());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:生成日期yyyyMMdd
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDbDate(Date date) {
 | 
											
												
													
														|  | 
 |  | +        return dateFormatDB.format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:把日期yyyy-MM-dd格式转换成yyyyMMDD日期格式
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String convertClientDateToDbDate(String dateStr) {
 | 
											
												
													
														|  | 
 |  | +        String dbDateStr = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            dbDateStr = dateFormatDB.format(dateFormat.parse(dateStr));
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return dbDateStr;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:解析数据库中的日期字符串 格式:yyyy-MM-dd
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date parseDate(String dateStr) {
 | 
											
												
													
														|  | 
 |  | +        Date date = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            date = dateFormat.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 将UNIX时间转换成标准时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param timestampString
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDate(String timestampString) {
 | 
											
												
													
														|  | 
 |  | +        Long timestamp = Long.parseLong(timestampString) * 1000;
 | 
											
												
													
														|  | 
 |  | +        String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp));
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:格式化日期字符串
 | 
											
												
													
														|  | 
 |  | +     * 例如:2008-8-8  转换为2008-08-08
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDateStrFormat(String dateStr) {
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            Date date = dateFormat.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +            return dateFormat.format(date);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return null;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:格式化日期字符串
 | 
											
												
													
														|  | 
 |  | +     * 例如:2008-8  转换为2008-08
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDateStrFormat2(String dateStr) {
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            Date date = dateFormat2.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +            return dateFormat2.format(date);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return null;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 2008-8-8 转 20080808
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getDateStrFormatyyyyMMdd(String dateStr) {
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            Date date = dateFormat.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +            return dateFormatDB.format(date);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return null;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:解析数据库中的时间字符串 格式:yyyy-MM-dd HH:mm:ss
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date parseDateTime(String dateTimeStr) {
 | 
											
												
													
														|  | 
 |  | +        Date date = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            date = dataTimeFormat.parse(dateTimeStr);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 计算两个日期之间的天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startDate 开始时间
 | 
											
												
													
														|  | 
 |  | +     * @param endDate   结束时间
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int calcDays(String startDate, String endDate) {
 | 
											
												
													
														|  | 
 |  | +        int days = 1;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            long start = dateFormat.parse(startDate).getTime();
 | 
											
												
													
														|  | 
 |  | +            long end = dateFormat.parse(endDate).getTime();
 | 
											
												
													
														|  | 
 |  | +            days = (int) ((end - start) / (24 * 60 * 60 * 1000));
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            return -1;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return days;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 计算两个日期之间的天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startDate 开始时间
 | 
											
												
													
														|  | 
 |  | +     * @param endDate   结束时间
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int calcDay(String startDate, String endDate) {
 | 
											
												
													
														|  | 
 |  | +        int days = 1;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            long start = dateFormatDB.parse(startDate).getTime();
 | 
											
												
													
														|  | 
 |  | +            long end = dateFormatDB.parse(endDate).getTime();
 | 
											
												
													
														|  | 
 |  | +            days = (int) ((end - start) / (24 * 60 * 60 * 1000));
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            return -1;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return days;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:指定日期加上指定天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date 日期
 | 
											
												
													
														|  | 
 |  | +     * @param day  天数
 | 
											
												
													
														|  | 
 |  | +     * @return 返回相加后的日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date addDate(Date date, int day) {
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:指定日期加上指定天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date   日期
 | 
											
												
													
														|  | 
 |  | +     * @param minute 分钟
 | 
											
												
													
														|  | 
 |  | +     * @return 返回相加后的日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date addMinute(Date date, int minute) {
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTimeInMillis(getMillis(date) + ((long) minute) * 60 * 1000);
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:添加指定秒杀的时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @param second
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date addSecond(Date date, int second) {
 | 
											
												
													
														|  | 
 |  | +        long s = date.getTime();
 | 
											
												
													
														|  | 
 |  | +        s = s + second * 1000;
 | 
											
												
													
														|  | 
 |  | +        return new Date(s);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:指定日期减去指定天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @param day
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date diffDate(Date date, int day) {
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTimeInMillis(getMillis(date) - ((long) day) * 24 * 3600 * 1000);
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:分钟相差 minute的时间值
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @param minute
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getDateByMinuteAdd(Date date, int minute) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.MINUTE, minute);
 | 
											
												
													
														|  | 
 |  | +        return calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:两个日期相隔天数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startDate 开始日期
 | 
											
												
													
														|  | 
 |  | +     * @param endDate   结束日期
 | 
											
												
													
														|  | 
 |  | +     * @return 返回相减后的日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int diffDate(Date startDate, Date endDate) {
 | 
											
												
													
														|  | 
 |  | +        long endMillis = endDate.getTime();
 | 
											
												
													
														|  | 
 |  | +        long startMillis = startDate.getTime();
 | 
											
												
													
														|  | 
 |  | +        long s = (endMillis - startMillis) / (24 * 3600 * 1000);
 | 
											
												
													
														|  | 
 |  | +        return (int) s;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:传入时间按所需格式返回时间字符串
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date   java.util.Date格式
 | 
											
												
													
														|  | 
 |  | +     * @param format yyyy-MM-dd HH:mm:ss | yyyy年MM月dd日 HH时mm分ss秒
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String format(Date date, String format) {
 | 
											
												
													
														|  | 
 |  | +        String result = "";
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            if (date == null) {
 | 
											
												
													
														|  | 
 |  | +                date = new Date();// 如果时间为空,则默认为当前时间
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            if (StringUtils.isBlank(format)) {// 默认格式化形式
 | 
											
												
													
														|  | 
 |  | +                format = "yyyy-MM-dd";
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            DateFormat df = new SimpleDateFormat(format);
 | 
											
												
													
														|  | 
 |  | +            result = df.format(date);
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return result;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:传入时间字符串按所需格式返回时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr 时间字符串
 | 
											
												
													
														|  | 
 |  | +     * @param format  跟传入dateStr时间的格式必须一样 yyyy-MM-dd HH:mm:ss | yyyy年MM月dd日 HH时mm分ss秒
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date format(String dateStr, String format) {
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isBlank(dateStr)) {
 | 
											
												
													
														|  | 
 |  | +            return new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isBlank(format)) {
 | 
											
												
													
														|  | 
 |  | +            format = "yyyy-MM-dd";
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Date date = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            DateFormat f = new SimpleDateFormat(format);
 | 
											
												
													
														|  | 
 |  | +            date = f.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:传入时间字符串按所需格式返回时间字符串
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr 时间字符串
 | 
											
												
													
														|  | 
 |  | +     * @param format  跟传入dateStr时间的格式必须一样 yyyy-MM-dd HH:mm:ss | yyyy年MM月dd日 HH时mm分ss秒
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String formatStr(String dateStr, String format) {
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isBlank(format)) {
 | 
											
												
													
														|  | 
 |  | +            format = "yyyy-MM-dd";
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isBlank(dateStr)) {
 | 
											
												
													
														|  | 
 |  | +            return format(new Date(), format);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        String date = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            DateFormat f = new SimpleDateFormat(format);
 | 
											
												
													
														|  | 
 |  | +            Date time = f.parse(dateStr);
 | 
											
												
													
														|  | 
 |  | +            date = f.format(time);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:时间字符串格式转换
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param dateStr  时间字符串
 | 
											
												
													
														|  | 
 |  | +     * @param format   时间字符串的格式
 | 
											
												
													
														|  | 
 |  | +     * @param toFormat 格式为的格式
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String format(String dateStr, String format, String toFormat) {
 | 
											
												
													
														|  | 
 |  | +        return format(format(dateStr, format), toFormat);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:格式化rss的时间
 | 
											
												
													
														|  | 
 |  | +     * 输入:
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String formatRssDate(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();// 如果时间为空,则默认为当前时间
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
 | 
											
												
													
														|  | 
 |  | +        SimpleTimeZone zone = new SimpleTimeZone(8, "GMT");
 | 
											
												
													
														|  | 
 |  | +        sdf.setTimeZone(zone);
 | 
											
												
													
														|  | 
 |  | +        return sdf.format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回年
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getYear(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.YEAR);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回月
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getMonth(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.MONTH) + 1;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回日
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getDay(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.DAY_OF_MONTH);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回小时
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getHour(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.HOUR_OF_DAY);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回分
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getMinute(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.MINUTE);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回星期 1:星期一,2:星期二 ... 6:星期六 7:星期日
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getChinaWeek(Date date) {
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        int week = c.get(Calendar.DAY_OF_WEEK) - 1;
 | 
											
												
													
														|  | 
 |  | +        if (week == 0) {
 | 
											
												
													
														|  | 
 |  | +            return 7;
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            return week;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回秒
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getSecond2(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.get(Calendar.SECOND);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回毫秒
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static long getMillis(Date date) {
 | 
											
												
													
														|  | 
 |  | +        if (date == null) {
 | 
											
												
													
														|  | 
 |  | +            date = new Date();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return c.getTimeInMillis();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:获取当前月的第一天日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getMonFirstDay() {
 | 
											
												
													
														|  | 
 |  | +        Date date = new Date();
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.set(getYear(date), getMonth(date) - 1, 1);
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:获取当前月的最后一天日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getMonLastDay() {
 | 
											
												
													
														|  | 
 |  | +        Date date = new Date();
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.set(getYear(date), getMonth(date), 1);
 | 
											
												
													
														|  | 
 |  | +        c.setTimeInMillis(c.getTimeInMillis() - (24 * 3600 * 1000));
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:获取上个月的最后一天日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getMonUpDay() {
 | 
											
												
													
														|  | 
 |  | +        Date date = new Date();
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.set(getYear(date), getMonth(date) - 1, 1);
 | 
											
												
													
														|  | 
 |  | +        c.setTimeInMillis(c.getTimeInMillis() - (24 * 3600 * 1000));
 | 
											
												
													
														|  | 
 |  | +        return c.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得本月的第一天的日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrMonthFirstDay() {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        String s = (getYear(cal)) + "-" + (getMonth(cal)) + "-01";
 | 
											
												
													
														|  | 
 |  | +        return s;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得当前月份2015-11
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrMonth() {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        String s = (getYear(cal)) + "-" + (getMonth(cal));
 | 
											
												
													
														|  | 
 |  | +        return getDateStrFormat2(s);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得本月的最后一天的日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrMonthLastDay() {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        String s = (getYear(cal)) + "-" + (getMonth(cal)) + "-" + getDays(cal);
 | 
											
												
													
														|  | 
 |  | +        return s;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得给定日期当月的天数
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getDays(Calendar cal) {
 | 
											
												
													
														|  | 
 |  | +        return cal.getActualMaximum(Calendar.DAY_OF_MONTH);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得给定日历的年
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getYear(Calendar cal) {
 | 
											
												
													
														|  | 
 |  | +        return cal.get(Calendar.YEAR);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得给定日历的月
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getMonth(Calendar cal) {
 | 
											
												
													
														|  | 
 |  | +        return (cal.get(Calendar.MONTH) + 1);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得给定日期字符串对应的年
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getYear(String date_str, String type) {
 | 
											
												
													
														|  | 
 |  | +        return (convertStrToCal(date_str, type).get(Calendar.YEAR));
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 日期转日历*
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Calendar convertDateToCal(Date date) {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        cal.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return cal;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 字符转换日历(动态格式转换)
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Calendar convertStrToCal(String date_str, String type) {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        cal.setTime(convertStrToDate(date_str, type));
 | 
											
												
													
														|  | 
 |  | +        return cal;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 字符转换日期(动态格式转换)
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date convertStrToDate(String date_str, String type) {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat dateformat = new SimpleDateFormat(type);
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            return dateformat.parse(date_str);
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return null;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:获取当前日期 格式:2008-02-02 23:11:10
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrentDateTime() {
 | 
											
												
													
														|  | 
 |  | +        Date date = new Date();
 | 
											
												
													
														|  | 
 |  | +        return dataTimeFormat.format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:获取当前日期 格式:20101010
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getCurrentDate() {
 | 
											
												
													
														|  | 
 |  | +        Date date = new Date();
 | 
											
												
													
														|  | 
 |  | +        return dateFormat.format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 创建一个"yyyyMM"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMM"日期的格式化对象
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static SimpleDateFormat newShortYMFormat() {
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat("yyyyMM");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得距离输入月份的diffMonth月的日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param month     "yyyyMM"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @param diffMonth 相差的月数
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMM"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getShortYMDiffMonth(String month, int diffMonth) {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sdf = newShortYMFormat();
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            sdf.parse(month);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            // Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = sdf.getCalendar();
 | 
											
												
													
														|  | 
 |  | +        c.add(Calendar.MONTH, diffMonth);
 | 
											
												
													
														|  | 
 |  | +        return sdf.format(c.getTime());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得距离给定日期diffDay天的日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param shortYMD "yyyyMMdd"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @param diffDay  相差的天数
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMMdd"格式的日期
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getShortYMDDiffDay(String shortYMD, int diffDay) {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sdf = newShortYMDFormat();
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            sdf.parse(shortYMD);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            // Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Calendar c = sdf.getCalendar();
 | 
											
												
													
														|  | 
 |  | +        c.add(Calendar.DATE, diffDay);
 | 
											
												
													
														|  | 
 |  | +        return sdf.format(c.getTime());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 当前时间加 减days
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param
 | 
											
												
													
														|  | 
 |  | +     * @param diffDay
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getAddDay(int diffDay) {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
 | 
											
												
													
														|  | 
 |  | +        Calendar c = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        c.add(Calendar.DAY_OF_MONTH, diffDay);
 | 
											
												
													
														|  | 
 |  | +        return sf.format(c.getTime());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获取某月份的最后一天
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param shortYM 月份
 | 
											
												
													
														|  | 
 |  | +     * @return 输入月份的最后一天
 | 
											
												
													
														|  | 
 |  | +     * @throws Exception
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getEndDayOfMonth(String shortYM) {
 | 
											
												
													
														|  | 
 |  | +        String month = "";
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            month = DateUtils.getShortYMDiffMonth(shortYM, 1);
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            // Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return DateUtils.getShortYMDDiffDay(month + "01", -1);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得"yyyyMMdd"格式的当前日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return 返回"yyyyMMdd"格式的当前日期
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getShortYMD() {
 | 
											
												
													
														|  | 
 |  | +        return newShortYMDFormat().format(new Date());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得两个日期之间的所有日期列表(包括起始日期和结束日期)
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startShortYMD "yyyyMMdd"格式的起始日期
 | 
											
												
													
														|  | 
 |  | +     * @param endShortYMD   "yyyyMMdd"格式的结束日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMMdd"格式的日期列表
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @SuppressWarnings({"rawtypes", "unchecked"})
 | 
											
												
													
														|  | 
 |  | +    public static List getShortYMDList(String startShortYMD, String endShortYMD) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat startDateFormat = newShortYMDFormat();
 | 
											
												
													
														|  | 
 |  | +        startDateFormat.parse(startShortYMD);
 | 
											
												
													
														|  | 
 |  | +        Calendar startCal = startDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat endDateFormat = newShortYMDFormat();
 | 
											
												
													
														|  | 
 |  | +        endDateFormat.parse(endShortYMD);
 | 
											
												
													
														|  | 
 |  | +        Calendar endCal = endDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        List dateList = new ArrayList();
 | 
											
												
													
														|  | 
 |  | +        while (startCal.before(endCal)) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(startCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +            startCal.add(Calendar.DATE, 1);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(endCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return dateList;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得两个日期之间的所有日期列表(包括起始日期和结束日期)
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startShortYMD "yyyy-MM-dd"格式的起始日期
 | 
											
												
													
														|  | 
 |  | +     * @param endShortYMD   "yyyy-MM-dd"格式的结束日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMMdd"格式的日期列表
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @SuppressWarnings({"rawtypes", "unchecked"})
 | 
											
												
													
														|  | 
 |  | +    public static List getShortLongYMDList(String startShortYMD, String endShortYMD) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat startDateFormat = newLongYMDFormat();
 | 
											
												
													
														|  | 
 |  | +        startDateFormat.parse(startShortYMD);
 | 
											
												
													
														|  | 
 |  | +        Calendar startCal = startDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat endDateFormat = newLongYMDFormat();
 | 
											
												
													
														|  | 
 |  | +        endDateFormat.parse(endShortYMD);
 | 
											
												
													
														|  | 
 |  | +        Calendar endCal = endDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        List dateList = new ArrayList();
 | 
											
												
													
														|  | 
 |  | +        while (startCal.before(endCal)) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(startCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +            startCal.add(Calendar.DATE, 1);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(endCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return dateList;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得两个日期之间的所有日期列表(包括起始日期和结束日期)
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param startShortYM "yyyyMM"格式的起始日期
 | 
											
												
													
														|  | 
 |  | +     * @param endShortYM   "yyyyMM"格式的结束日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMM"格式的日期列表
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @SuppressWarnings({"rawtypes", "unchecked"})
 | 
											
												
													
														|  | 
 |  | +    public static List getShortYMList(String startShortYM, String endShortYM) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat startDateFormat = newShortYMFormat();
 | 
											
												
													
														|  | 
 |  | +        startDateFormat.parse(startShortYM);
 | 
											
												
													
														|  | 
 |  | +        Calendar startCal = startDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat endDateFormat = newShortYMFormat();
 | 
											
												
													
														|  | 
 |  | +        endDateFormat.parse(endShortYM);
 | 
											
												
													
														|  | 
 |  | +        Calendar endCal = endDateFormat.getCalendar();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        List dateList = new ArrayList();
 | 
											
												
													
														|  | 
 |  | +        while (startCal.before(endCal)) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(startCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +            startCal.add(Calendar.MONTH, 1);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
 | 
											
												
													
														|  | 
 |  | +            dateList.add(startDateFormat.format(endCal.getTime()));
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return dateList;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 验证输入的日期是否合法 yyyyMMdd
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param expDate
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static boolean checkExpDate(String expDate) {
 | 
											
												
													
														|  | 
 |  | +        int year = Integer.parseInt(expDate.substring(0, 4));
 | 
											
												
													
														|  | 
 |  | +        int month = Integer.parseInt(expDate.substring(4, 6));
 | 
											
												
													
														|  | 
 |  | +        int day = Integer.parseInt(expDate.substring(6, 8));
 | 
											
												
													
														|  | 
 |  | +        if (month > 12 || month < 1) {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (isLeapYear(year)) {
 | 
											
												
													
														|  | 
 |  | +            monthLengths[2] = 29;
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            monthLengths[2] = 28;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        int monthLength = monthLengths[month];
 | 
											
												
													
														|  | 
 |  | +        if (day < 1 || day > monthLength) {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return true;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 验证输入的日期是否合法    yyyy-MM-dd
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param expDate
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static boolean checkExpDateYMD(String expDate) {
 | 
											
												
													
														|  | 
 |  | +        int year = Integer.parseInt(expDate.substring(0, 4));
 | 
											
												
													
														|  | 
 |  | +        int month = Integer.parseInt(expDate.substring(5, 7));
 | 
											
												
													
														|  | 
 |  | +        int day = Integer.parseInt(expDate.substring(8, 10));
 | 
											
												
													
														|  | 
 |  | +        if (month > 12 || month < 1) {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (isLeapYear(year)) {
 | 
											
												
													
														|  | 
 |  | +            monthLengths[2] = 29;
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            monthLengths[2] = 28;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        int monthLength = monthLengths[month];
 | 
											
												
													
														|  | 
 |  | +        if (day < 1 || day > monthLength) {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return true;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 是否是闰年
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private static boolean isLeapYear(int year) {
 | 
											
												
													
														|  | 
 |  | +        return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 方法用途: 结束时间(end)与start时间进行比较<br>
 | 
											
												
													
														|  | 
 |  | +     * 实现步骤: 如果相等返回0,如果end大于start返回1,如果end小于start返回-1<br>
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param start
 | 
											
												
													
														|  | 
 |  | +     * @param end
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     * @throws Exception
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int compareEndAndStart(String start, String end) throws Exception {
 | 
											
												
													
														|  | 
 |  | +        long s = 0;
 | 
											
												
													
														|  | 
 |  | +        if (8 == start.length()) {
 | 
											
												
													
														|  | 
 |  | +            s = dateFormatDB.parse(start).getTime();
 | 
											
												
													
														|  | 
 |  | +        } else if (10 == start.length()) {
 | 
											
												
													
														|  | 
 |  | +            s = dateFormat.parse(start).getTime();
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            s = dataTimeFormat.parse(start).getTime();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        long e = 0;
 | 
											
												
													
														|  | 
 |  | +        if (8 == end.length()) {
 | 
											
												
													
														|  | 
 |  | +            e = dateFormatDB.parse(end).getTime();
 | 
											
												
													
														|  | 
 |  | +        } else if (10 == end.length()) {
 | 
											
												
													
														|  | 
 |  | +            e = dateFormat.parse(end).getTime();
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            e = dataTimeFormat.parse(end).getTime();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (e > s) {
 | 
											
												
													
														|  | 
 |  | +            return 1;
 | 
											
												
													
														|  | 
 |  | +        } else if (e < s) {
 | 
											
												
													
														|  | 
 |  | +            return -1;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return 0;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 根据传过来的字符串型的date,转换成对应的日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date str2Date(String date) {
 | 
											
												
													
														|  | 
 |  | +        Date ret = null;
 | 
											
												
													
														|  | 
 |  | +        if (date.length() == 10) {
 | 
											
												
													
														|  | 
 |  | +            try {
 | 
											
												
													
														|  | 
 |  | +                ret = new SimpleDateFormat("yyyy-MM-dd").parse(date);
 | 
											
												
													
														|  | 
 |  | +            } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +                e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (date.length() == 16) {
 | 
											
												
													
														|  | 
 |  | +            try {
 | 
											
												
													
														|  | 
 |  | +                ret = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(date);
 | 
											
												
													
														|  | 
 |  | +            } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +                e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (date.length() == 19) {
 | 
											
												
													
														|  | 
 |  | +            try {
 | 
											
												
													
														|  | 
 |  | +                ret = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date);
 | 
											
												
													
														|  | 
 |  | +            } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +                e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (date.length() == 13) {
 | 
											
												
													
														|  | 
 |  | +            try {
 | 
											
												
													
														|  | 
 |  | +                ret = new SimpleDateFormat("yyyy-MM-dd HH").parse(date);
 | 
											
												
													
														|  | 
 |  | +            } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +                e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (date.length() == 7) {
 | 
											
												
													
														|  | 
 |  | +            try {
 | 
											
												
													
														|  | 
 |  | +                ret = new SimpleDateFormat("yyyy-MM").parse(date);
 | 
											
												
													
														|  | 
 |  | +            } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +                e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return ret;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获取8位随机数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getRandomNum() {
 | 
											
												
													
														|  | 
 |  | +        Random r = new Random();
 | 
											
												
													
														|  | 
 |  | +        int a = r.nextInt(99999999);
 | 
											
												
													
														|  | 
 |  | +        String cardNum = "" + a;
 | 
											
												
													
														|  | 
 |  | +        int length = cardNum.length();
 | 
											
												
													
														|  | 
 |  | +        if (length < 8) {
 | 
											
												
													
														|  | 
 |  | +            for (int j = 0; j < (8 - length); j++) {
 | 
											
												
													
														|  | 
 |  | +                cardNum = "0" + cardNum;
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return cardNum;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获取8位随机数
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getRandomNumFive() {
 | 
											
												
													
														|  | 
 |  | +        Random r = new Random();
 | 
											
												
													
														|  | 
 |  | +        int a = r.nextInt(99999);
 | 
											
												
													
														|  | 
 |  | +        String cardNum = "" + a;
 | 
											
												
													
														|  | 
 |  | +        int length = cardNum.length();
 | 
											
												
													
														|  | 
 |  | +        if (length < 5) {
 | 
											
												
													
														|  | 
 |  | +            for (int j = 0; j < (5 - length); j++) {
 | 
											
												
													
														|  | 
 |  | +                cardNum = "0" + cardNum;
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return cardNum;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 智能转换日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param text
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date smartFormat(String text) {
 | 
											
												
													
														|  | 
 |  | +        Date date = null;
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            if (text == null || text.length() == 0) {
 | 
											
												
													
														|  | 
 |  | +                date = null;
 | 
											
												
													
														|  | 
 |  | +            } else if (text.length() == 10) {
 | 
											
												
													
														|  | 
 |  | +                date = formatStringToDate(text, Y_M_D);
 | 
											
												
													
														|  | 
 |  | +            } else if (text.length() == 13) {
 | 
											
												
													
														|  | 
 |  | +                date = new Date(Long.parseLong(text));
 | 
											
												
													
														|  | 
 |  | +            } else if (text.length() == 14) {
 | 
											
												
													
														|  | 
 |  | +                date = formatStringToDate(text, YMDHMS);
 | 
											
												
													
														|  | 
 |  | +            } else if (text.length() == 16) {
 | 
											
												
													
														|  | 
 |  | +                date = formatStringToDate(text, Y_M_D_HM);
 | 
											
												
													
														|  | 
 |  | +            } else if (text.length() == 19) {
 | 
											
												
													
														|  | 
 |  | +                date = formatStringToDate(text, Y_M_D_HMS);
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                throw new IllegalArgumentException("日期长度不符合要求!");
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            throw new IllegalArgumentException("日期转换失败!");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return date;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 把字符串格式化成日期
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param argDateStr
 | 
											
												
													
														|  | 
 |  | +     * @param argFormat
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date formatStringToDate(String argDateStr, String argFormat) throws Exception {
 | 
											
												
													
														|  | 
 |  | +        if (argDateStr == null || argDateStr.trim().length() < 1) {
 | 
											
												
													
														|  | 
 |  | +            throw new Exception("参数[日期]不能为空!");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        String strFormat = argFormat;
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isEmpty(strFormat)) {
 | 
											
												
													
														|  | 
 |  | +            strFormat = Y_M_D;
 | 
											
												
													
														|  | 
 |  | +            if (argDateStr.length() > 16) {
 | 
											
												
													
														|  | 
 |  | +                strFormat = Y_M_D_HMS;
 | 
											
												
													
														|  | 
 |  | +            } else if (argDateStr.length() > 10) {
 | 
											
												
													
														|  | 
 |  | +                strFormat = Y_M_D_HM;
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sdfFormat = new SimpleDateFormat(strFormat);
 | 
											
												
													
														|  | 
 |  | +        // 严格模式
 | 
											
												
													
														|  | 
 |  | +        sdfFormat.setLenient(false);
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            return sdfFormat.parse(argDateStr);
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            throw new Exception(e);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    public static String getSSTimeStamp() {
 | 
											
												
													
														|  | 
 |  | +        Date d = new Date();
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
 | 
											
												
													
														|  | 
 |  | +        String strddd = sdf.format(d);
 | 
											
												
													
														|  | 
 |  | +        return strddd;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获取当前日期是星期几<br>
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return 当前日期是星期几
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getWeekOfDate() {
 | 
											
												
													
														|  | 
 |  | +        String[] weekDays = {"7", "1", "2", "3", "4", "5", "6"};
 | 
											
												
													
														|  | 
 |  | +//        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +//        cal.setTime(dt);
 | 
											
												
													
														|  | 
 |  | +        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
 | 
											
												
													
														|  | 
 |  | +        if (w < 0) {
 | 
											
												
													
														|  | 
 |  | +            w = 0;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return weekDays[w];
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:返回上旬/中旬/下旬
 | 
											
												
													
														|  | 
 |  | +     * 1 :上旬  2: 中旬  3: 下旬
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int getEarlyMidLate(Date date) {
 | 
											
												
													
														|  | 
 |  | +        int day = getDay(date);
 | 
											
												
													
														|  | 
 |  | +        int earlyMidLate = 0;
 | 
											
												
													
														|  | 
 |  | +        if (1 <= day && day <= 10) {
 | 
											
												
													
														|  | 
 |  | +            earlyMidLate = 1;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (11 <= day && day <= 20) {
 | 
											
												
													
														|  | 
 |  | +            earlyMidLate = 2;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (20 < day) {
 | 
											
												
													
														|  | 
 |  | +            earlyMidLate = 3;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return earlyMidLate;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 将日期转换成Julian日期,即为哪一年的第几天
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     * @author gongz
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static int dateToJulian(Date date) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        int year = calendar.get(Calendar.YEAR) % 100;
 | 
											
												
													
														|  | 
 |  | +        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
 | 
											
												
													
														|  | 
 |  | +        return year * 1000 + dayOfYear;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 将Julian日期转化为date,即为哪一年的第几天
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date JulianToDate(int date) {
 | 
											
												
													
														|  | 
 |  | +        int year = (date / 1000) + 2000;
 | 
											
												
													
														|  | 
 |  | +        int dayOfYear = date % 1000;
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.YEAR, year);
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.DAY_OF_YEAR, dayOfYear);
 | 
											
												
													
														|  | 
 |  | +        return calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 返回当前月份的第一天
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     * @author gongz
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date currentMonthFirstDay() {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.MONTH, 0);
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.DAY_OF_MONTH, 1); //设置为1号,当前日期既为本月第一天
 | 
											
												
													
														|  | 
 |  | +        return calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 返回当前月份的最后一天
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     * @author gongz
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date currentMonthLastDay() {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.MONTH, 0);
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
 | 
											
												
													
														|  | 
 |  | +        return calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    public static int statisSubDay(Date endDate, Date startDate) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Calendar fromCalendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        fromCalendar.setTime(startDate);
 | 
											
												
													
														|  | 
 |  | +        fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
											
												
													
														|  | 
 |  | +        fromCalendar.set(Calendar.MINUTE, 0);
 | 
											
												
													
														|  | 
 |  | +        fromCalendar.set(Calendar.SECOND, 0);
 | 
											
												
													
														|  | 
 |  | +        fromCalendar.set(Calendar.MILLISECOND, 0);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        Calendar toCalendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        toCalendar.setTime(endDate);
 | 
											
												
													
														|  | 
 |  | +        toCalendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
											
												
													
														|  | 
 |  | +        toCalendar.set(Calendar.MINUTE, 0);
 | 
											
												
													
														|  | 
 |  | +        toCalendar.set(Calendar.SECOND, 0);
 | 
											
												
													
														|  | 
 |  | +        toCalendar.set(Calendar.MILLISECOND, 0);
 | 
											
												
													
														|  | 
 |  | +        Long tempString = (toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60
 | 
											
												
													
														|  | 
 |  | +                * 24);
 | 
											
												
													
														|  | 
 |  | +        return Integer.valueOf(tempString.toString());
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 时间减去 几小时 返回时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param
 | 
											
												
													
														|  | 
 |  | +     * @param
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getSubTwoDate(String strDate, int a) {
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
											
												
													
														|  | 
 |  | +            Calendar dar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +            dar.setTime(dft.parse(strDate));
 | 
											
												
													
														|  | 
 |  | +            dar.add(Calendar.HOUR_OF_DAY, -a);
 | 
											
												
													
														|  | 
 |  | +            return dft.format(dar.getTime());
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return "";
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 功能:判断两个时间是否相等 精确到分
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static boolean getCurrentDate(String strDate, Date date) {
 | 
											
												
													
														|  | 
 |  | +        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 | 
											
												
													
														|  | 
 |  | +        Calendar dar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            dar.setTime(dft.parse(strDate));
 | 
											
												
													
														|  | 
 |  | +        } catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +            // TODO Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return dft.format(dar.getTime()).equals(dft.format(date));
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    public static Date addDate1(Date d, long day) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        long time = d.getTime();
 | 
											
												
													
														|  | 
 |  | +        day = day * 24 * 60 * 60 * 1000;
 | 
											
												
													
														|  | 
 |  | +        time += day;
 | 
											
												
													
														|  | 
 |  | +        return new Date(time);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    public static Date getLastMonthDay() {
 | 
											
												
													
														|  | 
 |  | +//          SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        int month = calendar.get(Calendar.MONTH);
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.MONTH, month - 1);
 | 
											
												
													
														|  | 
 |  | +        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
 | 
											
												
													
														|  | 
 |  | +        Date strDateTo = calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +        return strDateTo;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    //获取某个月份的天数  JYJ
 | 
											
												
													
														|  | 
 |  | +    public static int getDaysOfMonth(Date date) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // 获得本周一0点时间
 | 
											
												
													
														|  | 
 |  | +    public static Date getTimesWeekmorning() {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        int a = cal.get(Calendar.DAY_OF_WEEK);
 | 
											
												
													
														|  | 
 |  | +        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
 | 
											
												
													
														|  | 
 |  | +        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
 | 
											
												
													
														|  | 
 |  | +        if (a == 1) {
 | 
											
												
													
														|  | 
 |  | +            cal.add(Calendar.DAY_OF_WEEK, -7);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return cal.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // 获得周一后的第i天
 | 
											
												
													
														|  | 
 |  | +    public static Date getTimesWeeknight(int i) {
 | 
											
												
													
														|  | 
 |  | +        Calendar cal = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        cal.setTime(getTimesWeekmorning());
 | 
											
												
													
														|  | 
 |  | +        cal.add(Calendar.DAY_OF_WEEK, i);
 | 
											
												
													
														|  | 
 |  | +        cal.set(Calendar.HOUR_OF_DAY, 23);
 | 
											
												
													
														|  | 
 |  | +        cal.set(Calendar.SECOND, 59);
 | 
											
												
													
														|  | 
 |  | +        cal.set(Calendar.MINUTE, 59);
 | 
											
												
													
														|  | 
 |  | +        return cal.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 根据月份 获取这月 具体天 和星期 返回list
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static List<Map<String, Object>> getDayNum(String month, String monthPlanId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        int dayNum = getDaysOfMonth(format(month + "-01 00:00:00", Y_M_D_HM));
 | 
											
												
													
														|  | 
 |  | +        for (int i = 1; i <= dayNum; i++) {
 | 
											
												
													
														|  | 
 |  | +            Map<String, Object> map = new HashMap<String, Object>();
 | 
											
												
													
														|  | 
 |  | +            String newday = "";
 | 
											
												
													
														|  | 
 |  | +            if (i < 10) {
 | 
											
												
													
														|  | 
 |  | +                newday = month + "-0" + i;
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                newday = month + "-" + i;
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            map.put("planDay", newday);
 | 
											
												
													
														|  | 
 |  | +            int week = getChinaWeek(format(newday + " 00:00:00", Y_M_D_HM));
 | 
											
												
													
														|  | 
 |  | +            map.put("planWeek", week);
 | 
											
												
													
														|  | 
 |  | +            map.put("hywaMonthPlanId", monthPlanId);
 | 
											
												
													
														|  | 
 |  | +            list.add(map);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return list;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 获得某日期前后几天所有日期列表
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param "yyyy-MM-dd"格式的起始日期
 | 
											
												
													
														|  | 
 |  | +     * @return "yyyyMM"格式的日期列表
 | 
											
												
													
														|  | 
 |  | +     * @throws ParseException
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @SuppressWarnings({"rawtypes", "unchecked"})
 | 
											
												
													
														|  | 
 |  | +    public static List getShortYMDList(String date, Integer day) throws ParseException {
 | 
											
												
													
														|  | 
 |  | +        Date centerDate = format(date, "yyyy-MM-dd");
 | 
											
												
													
														|  | 
 |  | +        Date startDate = centerDate, endDate = centerDate;
 | 
											
												
													
														|  | 
 |  | +        //几天前的时间
 | 
											
												
													
														|  | 
 |  | +        startDate = getDateBefore(centerDate, day);
 | 
											
												
													
														|  | 
 |  | +        //几天后的时间
 | 
											
												
													
														|  | 
 |  | +        endDate = getDateAfter(centerDate, day);
 | 
											
												
													
														|  | 
 |  | +        //所有日期列表
 | 
											
												
													
														|  | 
 |  | +        List dateList = getShortYMDList(format(startDate, "yyyyMMdd"), format(endDate, "yyyyMMdd"));
 | 
											
												
													
														|  | 
 |  | +        return dateList;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 得到几天前的时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param d
 | 
											
												
													
														|  | 
 |  | +     * @param day
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getDateBefore(Date d, int day) {
 | 
											
												
													
														|  | 
 |  | +        Calendar now = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        now.setTime(d);
 | 
											
												
													
														|  | 
 |  | +        now.set(Calendar.DATE, now.get(Calendar.DATE) - day);
 | 
											
												
													
														|  | 
 |  | +        return now.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 得到几天后的时间
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param d
 | 
											
												
													
														|  | 
 |  | +     * @param day
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static Date getDateAfter(Date d, int day) {
 | 
											
												
													
														|  | 
 |  | +        Calendar now = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        now.setTime(d);
 | 
											
												
													
														|  | 
 |  | +        now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
 | 
											
												
													
														|  | 
 |  | +        return now.getTime();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 前一天日期
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getNextDay(Date date) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.DAY_OF_MONTH, -1);
 | 
											
												
													
														|  | 
 |  | +        date = calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat(Y_M_D).format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 几小时后的时间
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getAddHourDate(Date date,int hour) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.HOUR_OF_DAY, hour);
 | 
											
												
													
														|  | 
 |  | +        date = calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat(Y_M_D_HMS).format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 几分钟后的时间
 | 
											
												
													
														|  | 
 |  | +     * @param date
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    public static String getAddMinuteDate(Date date,int minute) {
 | 
											
												
													
														|  | 
 |  | +        Calendar calendar = Calendar.getInstance();
 | 
											
												
													
														|  | 
 |  | +        calendar.setTime(date);
 | 
											
												
													
														|  | 
 |  | +        calendar.add(Calendar.MINUTE, minute);
 | 
											
												
													
														|  | 
 |  | +        date = calendar.getTime();
 | 
											
												
													
														|  | 
 |  | +        return new SimpleDateFormat(Y_M_D_HMS).format(date);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +//
 | 
											
												
													
														|  | 
 |  | +//	  public static void main(String[] args) {
 | 
											
												
													
														|  | 
 |  | +//    	try {
 | 
											
												
													
														|  | 
 |  | +//			List dateList = getShortYMDList("2019-04-01", 2);
 | 
											
												
													
														|  | 
 |  | +//			System.out.println(dateList);
 | 
											
												
													
														|  | 
 |  | +//		} catch (ParseException e) {
 | 
											
												
													
														|  | 
 |  | +//			// TODO Auto-generated catch block
 | 
											
												
													
														|  | 
 |  | +//			e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +//		}
 | 
											
												
													
														|  | 
 |  | +//	  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +}  
 |