计算时间差,两种输出格式

package com.nos.lctp.basePlanet.commons.utils;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Pztest {

//public static void main(String[] args) {

//java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//        java.util.Calendar c = Calendar.getInstance();

//        String date1 = "2014-10-10 00:00:00";

//        String date2 = "2014-10-10 10:00:00";

//        

//        try {

//c.setTime(sdf.parse(date1));

//

//    int y1 = c.get(Calendar.YEAR);

//        int m1 = c.get(Calendar.MONTH);

//         

//         

//        c.setTime(sdf.parse(date2));

//        int y2 = c.get(Calendar.YEAR);

//        int m2 = c.get(Calendar.MONTH);

//         

//        int y = Math.abs(y2 - y1);

//        int m = y * 12 + Math.abs(m1-m2);

// 

//        long d1 = sdf.parse(date1).getTime();

//        long d2 = sdf.parse(date2).getTime();

//        int d = (int) (Math.abs(d2-d1) / (1000 * 60 * 60 * 24));

//        

//        System.out.println("相差年: " + y);

//        System.out.println("相差月: " + m);

//        System.out.println("相差天: " + d);

//} catch (ParseException e) {

//// TODO Auto-generated catch block

//e.printStackTrace();

//}

      

//public static void main(String ss[]) {  

//        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式化时间  

//  

//        String nowtime = d.format(new Date());// 按以上格式 将当前时间转换成字符串  

//  

//        System.out.println("当前时间:" + nowtime);  

//        String testtime = "2016-04-18 11:07:35";// 测试时间  

//        System.out.println("测试时间:" + testtime);  

//  

//        try {  

//            long result = (d.parse(nowtime).getTime() - d.parse(testtime)  

//                    .getTime()) / 3600000;// 当前时间减去测试时间  

//                                        // 这个的除以1000得到秒,相应的60000得到分,3600000得到小时  

//            long resultMin = (d.parse(nowtime).getTime() - d.parse(testtime)  

//                    .getTime()) / 60000;

//            System.out.println("当前时间减去测试时间=" + result + "小时");  

//            System.out.println("当前时间减去测试时间=" + resultMin + "分钟"); 

//        } catch (ParseException e) {  

//            e.printStackTrace();  

//        }  

//

//}

public static void main(String ss[]) {  

//现在是 :2004-03-26 13:31:c40

//过去是:2004-01-02 11:30:24

//我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

//这前后时间可能是机器生成的,也可能是人工输入的,那么我们可以通过下面代码来实现

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try{

 Date d1 = df.parse("2004-03-26 13:31:40");

 Date d2 = df.parse("2004-01-02 11:30:24");

 long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别

 long days = diff / (1000 * 60 * 60 * 24);

 long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);

 long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);

 System.out.println(""+days+"天"+hours+"小时"+minutes+"分");

}catch (Exception e){

e.printStackTrace();

}

}

}

猜你喜欢

转载自it1990eye0920.iteye.com/blog/2292041