JAVA 时间差距,两个时间相差多少天,时,分,秒;获取当天时间零点;获取及天钱的时间 (时间工具类)

  1. import java.text.DateFormat;  
  2. import java.text.ParseException;  
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Date;  
  5. /** 
  6. * 时间相距 
  7. * @author Ben 
  8. * @version 1.0 
  9. * @date 2009-10-21 16:38:51 
  10. */  
  11. public class DateDistance {  
  12.       
  13.     /** 
  14.      * 两个时间之间相差距离多少天 
  15.      * @param one 时间参数 1: 
  16.      * @param two 时间参数 2: 
  17.      * @return 相差天数 
  18.      */  
  19.     public static long getDistanceDays(String str1, String str2) throws Exception{  
  20.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
  21.         Date one;  
  22.         Date two;  
  23.         long days=0;  
  24.         try {  
  25.             one = df.parse(str1);  
  26.             two = df.parse(str2);  
  27.             long time1 = one.getTime();  
  28.             long time2 = two.getTime();  
  29.             long diff ;  
  30.             if(time1<time2) {  
  31.                 diff = time2 - time1;  
  32.             } else {  
  33.                 diff = time1 - time2;  
  34.             }  
  35.             days = diff / (1000 * 60 * 60 * 24);  
  36.         } catch (ParseException e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.         return days;  
  40.     }  
  41.       
  42.     /** 
  43.      * 两个时间相差距离多少天多少小时多少分多少秒 
  44.      * @param str1 时间参数 1 格式:1990-01-01 12:00:00 
  45.      * @param str2 时间参数 2 格式:2009-01-01 12:00:00 
  46.      * @return long[] 返回值为:{天, 时, 分, 秒} 
  47.      */  
  48.     public static long[] getDistanceTimes(String str1, String str2) {  
  49.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  50.         Date one;  
  51.         Date two;  
  52.         long day = 0;  
  53.         long hour = 0;  
  54.         long min = 0;  
  55.         long sec = 0;  
  56.         try {  
  57.             one = df.parse(str1);  
  58.             two = df.parse(str2);  
  59.             long time1 = one.getTime();  
  60.             long time2 = two.getTime();  
  61.             long diff ;  
  62.             if(time1<time2) {  
  63.                 diff = time2 - time1;  
  64.             } else {  
  65.                 diff = time1 - time2;  
  66.             }  
  67.             day = diff / (24 * 60 * 60 * 1000);  
  68.             hour = (diff / (60 * 60 * 1000) - day * 24);  
  69.             min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);  
  70.             sec = (diff/1000-day*24*60*60-hour*60*60-min*60);  
  71.         } catch (ParseException e) {  
  72.             e.printStackTrace();  
  73.         }  
  74.         long[] times = {day, hour, min, sec};  
  75.         return times;  
  76.     }  
  77.     /** 
  78.      * 两个时间相差距离多少天多少小时多少分多少秒 
  79.      * @param str1 时间参数 1 格式:1990-01-01 12:00:00 
  80.      * @param str2 时间参数 2 格式:2009-01-01 12:00:00 
  81.      * @return String 返回值为:xx天xx小时xx分xx秒 
  82.      */  
  83.     public static String getDistanceTime(String str1, String str2) {  
  84.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  85.         Date one;  
  86.         Date two;  
  87.         long day = 0;  
  88.         long hour = 0;  
  89.         long min = 0;  
  90.         long sec = 0;  
  91.         try {  
  92.             one = df.parse(str1);  
  93.             two = df.parse(str2);  
  94.             long time1 = one.getTime();  
  95.             long time2 = two.getTime();  
  96.             long diff ;  
  97.             if(time1<time2) {  
  98.                 diff = time2 - time1;  
  99.             } else {  
  100.                 diff = time1 - time2;  
  101.             }  
  102.             day = diff / (24 * 60 * 60 * 1000);  
  103.             hour = (diff / (60 * 60 * 1000) - day * 24);  
  104.             min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);  
  105.             sec = (diff/1000-day*24*60*60-hour*60*60-min*60);  
  106.         } catch (ParseException e) {  
  107.             e.printStackTrace();  
  108.         }  
  109.         return day + "天" + hour + "小时" + min + "分" + sec + "秒";  
  110.     }  

  1. }  
  2. //获取前几天时间
    public static Date getAgoDay(int i) {  
    Date date = new Date();
            Calendar calendar = Calendar.getInstance();  
            calendar.setTime(date);  
            calendar.add(Calendar.DAY_OF_MONTH, -i);  
            date = calendar.getTime();  
            return date;
        } 

    //获取时间的零点
    public static Date getDayZero(Date date) {  
    Calendar calendar = Calendar.getInstance();
       calendar.setTime(date);
       calendar.set(Calendar.HOUR_OF_DAY, 0);
       calendar.set(Calendar.MINUTE, 0);
       calendar.set(Calendar.SECOND, 0);
        
       Date start = calendar.getTime();
            return start;
        } 

    //计算两个时间差值(毫秒数)
    public static long differFrom(Date date1,Date date2) {  
    long minutes=(date2.getTime()-date1.getTime());
    return minutes;
    }

    //计算两个时间差值(秒数)
    public static long differFromSecond(Date date1,Date date2) {  
    long minutes=(date2.getTime()-date1.getTime())/1000;
    return minutes;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值