IT虾米网

java日期格式转换大全

public class DateFormatUtils {
	private static Log logger = LogFactory.getLog(DateFormatUtils.class);
	
	public static String formatDate(String formater,Date date){
		SimpleDateFormat formate = new SimpleDateFormat(formater);
		formate.format(date);
		return formate.format(date);
	}
	
	/**
	 * 
	 * @Title:formatDateToCommon
	 * @Description: 通用时间转换类型 
	 * @param date
	 * @return
	 */
	public static String formatDateToCommon(Date date){
		SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return formate.format(date);
	}
	
	/**
	 * 
	 * @Title:getSystemDate
	 * @Description: 获取系统当前时间 
	 * @param date
	 * @return
	 * @throws Exception
	 */
	public static Date getSystemDate() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			return sdf.parse(sdf.format(new Date()));
		} catch (ParseException e) {
			logger.error("", e);
		}
		return null ;
	}
	
	/**
	 * 
	 * @Title:SystemDateFormatToCommon
	 * @Description: 获取系统当前时间 
	 * @return
	 */
	public static String getSystemDateFormatToCommon(){
		SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return formate.format(new Date());
	}
	
	public static String getSystemDateFormatToYYYYMMDD(){
		SimpleDateFormat formate = new SimpleDateFormat("yyyyMMdd");
		return formate.format(new Date());
	}
	
	public static String getSystemDateFormatToYYYYMMDDHHmmss(){
		SimpleDateFormat formate = new SimpleDateFormat("yyyyMMddHHmmss");
		return formate.format(new Date());
	}
	
	/**
	 * 
	 * @Title:getFormatDateCommon
	 * @Description: 格式化时间 
	 * @param date
	 * @return
	 * @throws Exception
	 */
	public static Date getFormatDateCommon(Date date) {
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			return sdf.parse(sdf.format(date));
		} catch (ParseException e) {
			logger.error("", e);
		}
		return null;
	}
	
	/**
	 * 
	 * @Title:StringToDate
	 * @Description: 字符串转换成日期 
	 * @param dateStr
	 * @param formatStr
	 * @return
	 * @throws ParseException 
	 */
	public static Date StringToDate(String dateStr) throws ParseException {
		DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date=null;
		date = sdf.parse(dateStr);
		return date;
	}
	
	public static Date StringToDate(String dateStr, String pattern){
		try{
			DateFormat sdf=new SimpleDateFormat(pattern);
			Date date = sdf.parse(dateStr);
			return date;
		}catch(ParseException ex){
			return null;
		}
	}
	
	/**
	 * 
	 * @Title:fromDateStringToLong
	 * @Description: 获取字符串时间格式的毫秒数 
	 * @param inVal
	 * @return
	 */
	public static long fromDateStringToLong(String inVal) {
		return fromDateStringToLong(inVal, "yyyy-MM-dd HH:mm:ss");
	}
	public static long fromDateStringToLong(String inVal,String format) {
		Date date = null; // 定义时间类型
		SimpleDateFormat inputFormat = new SimpleDateFormat(format);
		try {
			date = inputFormat.parse(inVal); // 将字符型转换成日期型
		} catch (Exception e) {
			logger.error("", e);
		}
		return date.getTime(); // 返回毫秒数
	}
	
	/**
	 * 
	 * @Title:getMillForDateTimeDouble
	 * @Description: 获取两个时间之间的毫秒数 
	 * @param inVal
	 * @return
	 */
	public static long getMillForDateTimeDouble(Date startTime, Date endTime) {
		long lTime = startTime.getTime();
		long eTime = endTime.getTime();
		long s = eTime - lTime ;
		return s;
	}
	
	/**
	 * 
	 * @Title:formatDuring
	 * @Description: 将毫秒数转换为时分秒 
	 * @param mss
	 * @return
	 */
	public static String formatDuring(long mss) {  
	    long days = mss / (1000 * 60 * 60 * 24);  
	    long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);  
	    long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60);  
	    long seconds = (mss % (1000 * 60)) / 1000;  
    	return days + " 天 " + hours + " 时 " + minutes + " 分 "  
	            + seconds + " 秒 ";   
	}  
	
	/**  
     * 计算两个日期之间相差的天数  
     * @param format yyyyMMdd
     * @param smdate 较小的时间 
     * @param bdate  较大的时间 
     * @return 相差天数 
     * @throws ParseException  
     */    
    public static int daysBetween(String format,Date smdate,Date bdate) throws ParseException    
    {    
        SimpleDateFormat sdf=new SimpleDateFormat(format);  
        smdate=sdf.parse(sdf.format(smdate));  
        bdate=sdf.parse(sdf.format(bdate));  
        Calendar cal = Calendar.getInstance();    
        cal.setTime(smdate);    
        long time1 = cal.getTimeInMillis();                 
        cal.setTime(bdate);    
        long time2 = cal.getTimeInMillis();         
        long between_days=(time2-time1)/(1000*3600*24);  
            
       return Integer.parseInt(String.valueOf(between_days));           
    }    
      
	/**  
     * 计算两个日期之间相差的天数  
     * 字符串的日期格式的计算
     * @param format yyyyMMdd
     * @param smdate 较小的时间 
     * @param bdate  较大的时间 
     * @return 相差天数 
     * @throws ParseException  
     */
    public static int daysBetween(String format,String smdate,String bdate) throws ParseException{  
        SimpleDateFormat sdf=new SimpleDateFormat(format);  
        Calendar cal = Calendar.getInstance();    
        cal.setTime(sdf.parse(smdate));    
        long time1 = cal.getTimeInMillis();                 
        cal.setTime(sdf.parse(bdate));    
        long time2 = cal.getTimeInMillis();         
        long between_days=(time2-time1)/(1000*3600*24);  
            
       return Integer.parseInt(String.valueOf(between_days));     
    }
    
    /**
     * 
     * @Title:getSystemAddMinute
     * @Description: 获取当前系统时间毫秒数 + n分钟后的时间 
     * @param currentTimeMillis 当前系统时间毫秒数
     * @param minute 分
     * @return
     */
    public static String getSystemByCurrentTimeMillisAndMinute(long currentTimeMillis, int minute){
    	long currentTime = System.currentTimeMillis() + minute * 60 * 1000;
    	Date date = new Date(currentTime);
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
    }
    
    /**
     * 
     * @Title:getDateStrByTimeMillis
     * @Description: 以字符串形式根据毫秒数获取时间 
     * @param currentTimeMillis
     * @return
     */
    public static String getDateStrByTimeMillis(long currentTimeMillis){
    	Date date = new Date(currentTimeMillis); 
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
    }
    
    /**
     * 
     * @Title:getDateStrByTimeMillis
     * @Description: 以字符串形式根据毫秒数获取时间 
     * @param currentTimeMillis
     * @return
     */
    public static Date getDateByTimeMillis(long currentTimeMillis){
    	Date date = new Date(currentTimeMillis); 
    	return date;
    }
    
    /**** 
     * 传入具体日期 ,返回具体日期减一个月。 
     *  
     * @param date 
     *            日期(2014-04-20) 
     * @return 2014-03-20 
     * @throws ParseException 
     */  
    public static String addMonth(String yearMonth) throws ParseException {  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");  
        Date dt = sdf.parse(yearMonth);  
        Calendar rightNow = Calendar.getInstance();  
        rightNow.setTime(dt);  
  
        rightNow.add(Calendar.MONTH, +1);  
        Date dt1 = rightNow.getTime();  
        String reStr = sdf.format(dt1);  
  
        return reStr;  
    }
    
    /**
     * 
     * @param dateStr   传入的日期字符串
     * @param formater  对传入日期和传出日期的格式化类型
     * @param monthCount 增加月份传入正值,减去月份传入负值
     * @return
     * @throws ParseException 
     */
    public static String calMonth(String dateStr, String formater, int monthCount) throws ParseException{
    	SimpleDateFormat sdf = new SimpleDateFormat(formater);
        Date dt = sdf.parse(dateStr);
        Calendar rightNow = Calendar.getInstance();
        rightNow.setTime(dt);
  
        rightNow.add(Calendar.MONTH, monthCount);
        Date dt1 = rightNow.getTime();
        String reStr = sdf.format(dt1);
        return reStr;
    }
}

 

posted @ 2019-10-24 14:59  落叶的博客  阅读(1147)  评论(0编辑  收藏  举报