Date的工具类DateUtil

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wanghang88/article/details/79877902
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


import org.apache.commons.codec.binary.StringUtils;
import org.apache.xmlbeans.impl.regex.ParseException;


/**
 * @author wanghang
 * @Description 时间工具类
 * @date: 2018/04/28 16:52
 */
public class DateUtil {
	/**
     * 国际化时间格式 2017-11-7T17:02:07+08:00
     */
    private static final String YMDHMSXXX = "yyyy-MM-dd'T'HH:mm:ssXXX";
    /**
     * yyyy-MM-dd HH:mm:ss
     */
    private static final String YMDHMS = "yyyy-MM-dd HH:mm:ss";
    /**
     * dd-MM-yyyy
     */
    private static final String DMY = "dd-MM-yyyy";
    /**
     * MM-dd-yyyy
     */
    private static final String MDY = "MM-dd-yyyy";
    /**
     * dd-MM-yyyy HH:mm
     */
    private static final String DMYHM = "dd-MM-yyyy HH:mm";
    
    
    /**
     * 时间格式化
     * @param date
     * @param formatPattern
     * @return java.lang.String
     * @Date 2018/04/28
     */
    public static String format(Date date, String formatPattern) {
        if (date == null) {
            return "";
        }
        SimpleDateFormat f = new SimpleDateFormat(formatPattern);
        return f.format(date);
    }
    
    
    /**
     * 日期格式字符转成日期
     * @param date
     * @param formatPattern
     * @return java.util.Date
     * @Date: 2018/04/28
     */
    public static Date parse(String date, String formatPattern) throws ParseException {
        if (StringUtils.isBlank(date)) {
            return null;
        }
        SimpleDateFormat f = new SimpleDateFormat(formatPattern);
        return f.parse(date);
    }
    
    /**
     * 当前时间+day,指定hour,分秒置为零
     * @param day
     * @param hour
     * @return
     */
    public static Date addDay(int day, int hour) {
        // 取时间
        Date date = new Date();
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.add(Calendar.DATE, day);
        return calendar.getTime();
    }
	


    /**
     * 当前时间+day,时分秒置为零
     * @param day
     * @return
     */
    public static Date addDay(int day) {
        // 取时间
        Date date = new Date();
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.add(Calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动
        // 这个时间就是日期往后推一天的结果
        return calendar.getTime();
    }
    


    /**
     * 指定时间+day 时分秒置为零
     * @param day
     * @param date
     * @return
     */
    public static Date addDay(int day, Date date) {
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.add(Calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动
        // 这个时间就是日期往后推一天的结果
        return calendar.getTime();
    }
    
    /**
     * 指定时间+day 时分秒不变
     * @param day
     * @param date
     * @return
     */
    public static Date addDay2(int day, Date date) {
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动
        // 这个时间就是日期往后推一天的结果
         return calendar.getTime();
    }
    
	/** 
	 * 描述:获取传入日期所在天的最后一秒 
	 * 比如,传入当天的最后一秒是:2018-04-10 23:59:59
	 * @param Date 
	 */  
	 public static Date getLastDate(Date date) {    
	        Calendar para = Calendar.getInstance(java.util.Locale.CHINA);    
	        para.setTime(date);    
	        para.set(Calendar.HOUR_OF_DAY, 23);    
	        para.set(Calendar.MINUTE, 59);    
	        para.set(Calendar.SECOND, 59);    
	        return para.getTime();    
	 } 
	 
   /**
	 * 获得传入时间所在月最后一天的的最后一秒
	 * @param date
	 * @return
	 */
	public static Date getLastDateTimeOfMonth(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
		c.set(Calendar.HOUR_OF_DAY, c.getActualMaximum(Calendar.HOUR_OF_DAY));
		c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE));
		c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND));
		return c.getTime();
	}


}

猜你喜欢

转载自blog.csdn.net/wanghang88/article/details/79877902