首页 > 代码库 > JAVA 时间差距,两个时间相差多少天,时,分,秒

JAVA 时间差距,两个时间相差多少天,时,分,秒

 

JAVA 时间差距,两个时间相差多少天,时,分,秒

 

package io;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 时间相距 *  * @author Ben * @version 1.0 * @date 2009-10-21 16:38:51 */public class DateDistance {    /**     * 两个时间之间相差距离多少天     *      * @param one     *            时间参数 1:     * @param two     *            时间参数 2:     * @return 相差天数     */    public static long getDistanceDays(String str1, String str2)            throws Exception {        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");        Date one;        Date two;        long days = 0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff;            if (time1 < time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            days = diff / (1000 * 60 * 60 * 24);        } catch (ParseException e) {            e.printStackTrace();        }        return days;    }    /**     * 两个时间相差距离多少天多少小时多少分多少秒     *      * @param str1     *            时间参数 1 格式:1990-01-01 12:00:00     * @param str2     *            时间参数 2 格式:2009-01-01 12:00:00     * @return long[] 返回值为:{天, 时, 分, 秒}     */    public static long[] getDistanceTimes(String str1, String str2) {        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date one;        Date two;        long day = 0;        long hour = 0;        long min = 0;        long sec = 0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff;            if (time1 < time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            day = diff / (24 * 60 * 60 * 1000);            hour = (diff / (60 * 60 * 1000) - day * 24);            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);            sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);        } catch (ParseException e) {            e.printStackTrace();        }        long[] times = { day, hour, min, sec };        return times;    }    /**     * 两个时间相差距离多少天多少小时多少分多少秒     *      * @param str1     *            时间参数 1 格式:1990-01-01 12:00:00     * @param str2     *            时间参数 2 格式:2009-01-01 12:00:00     * @return String 返回值为:xx天xx小时xx分xx秒     */    public static String getDistanceTime(String str1, String str2) {        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date one;        Date two;        long day = 0;        long hour = 0;        long min = 0;        long sec = 0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff;            if (time1 < time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            day = diff / (24 * 60 * 60 * 1000);            hour = (diff / (60 * 60 * 1000) - day * 24);            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);            sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);        } catch (ParseException e) {            e.printStackTrace();        }        return day + "天" + hour + "小时" + min + "分" + sec + "秒";    }    public static void main(String[] args) {        String str = getDistanceTime("2014-1-7 12:12:33.0",                "2014-6-6 12:12:12.0");        System.out.println(str);    }}

 

 

 

转自 : http://hi.baidu.com/odnvxdpbiqimnwr/item/192ca00d13e9e50b6d90483a