【转】日期工具类DateUtils

转自csdn,原作者:jzhf2012

package date.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtils {
    
    static final String formatPattern = "yyyy-MM-dd";
    
    static final String formatPattern_Short = "yyyyMMdd";
    
    
    /**
     * 获取当前日期
     * @return
     */
    public static String getCurrentDate(){
        SimpleDateFormat format = new SimpleDateFormat(formatPattern);        
        return format.format(new Date());
    }
    
    /**
     * 获取制定毫秒数之前的日期
     * @param timeDiff
     * @return
     */
    public static String getDesignatedDate(long timeDiff){
        SimpleDateFormat format = new SimpleDateFormat(formatPattern);
        long nowTime = System.currentTimeMillis();
        long designTime = nowTime - timeDiff;        
        return format.format(designTime);
    }
    
    /**
     * 
     * 获取前几天的日期
     */
    public static String getPrefixDate(String count){
        Calendar cal = Calendar.getInstance();
        int day = 0-Integer.parseInt(count);
        cal.add(Calendar.DATE,day);   // int amount   代表天数
        Date datNew = cal.getTime(); 
        SimpleDateFormat format = new SimpleDateFormat(formatPattern);
        return format.format(datNew);
    }
    /**
     * 日期转换成字符串
     * @param date
     * @return
     */
    public static String dateToString(Date date){
        SimpleDateFormat format = new SimpleDateFormat(formatPattern);
        return format.format(date);
    }
    /**
     * 字符串转换日期
     * @param str
     * @return
     */
    public static Date stringToDate(String str){
        //str =  " 2008-07-10 19:20:00 " 格式
        SimpleDateFormat format = new SimpleDateFormat(formatPattern);
        if(!str.equals("")&&str!=null){
            try {
                return format.parse(str);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }
    
    //java中怎样计算两个时间如:“21:57”和“08:20”相差的分钟数、小时数 java计算两个时间差小时 分钟 秒 .
    public void timeSubtract(){
        SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        Date begin = null; 
        Date end = null; 
        try { 
        begin = dfs.parse("2004-01-02 11:30:24"); 
        end = dfs.parse("2004-03-26 13:31:40"); 
        } catch (ParseException e) { 
        e.printStackTrace(); 
        } 

        long between = (end.getTime() - begin.getTime()) / 1000;// 除以1000是为了转换成秒 

        long day1 = between / (24 * 3600); 
        long hour1 = between % (24 * 3600) / 3600; 
        long minute1 = between % 3600 / 60; 
        long second1 = between % 60; 
        System.out.println("" + day1 + "天" + hour1 + "小时" + minute1 + "分" 
        + second1 + "秒"); 
    }

}
原文地址:https://www.cnblogs.com/chreless2/p/5544978.html