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; 
    } 
} 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/17057.html

(0)
上一篇 2021年7月19日 19:49
下一篇 2021年7月19日 19:53

相关推荐

发表回复

登录后才能评论