2012-07-06 24 views
1

我有以下格式的时间。如何在给定时间时查找时差

String deptTime ="08:00 PM"; 
String arrTime = "04:00 AM"; 

如何获得差异小时恰好话像1小时30分钟 ..

+0

[你有什么试过?](http://mattgemmell.com/2008/12/08/what-have-you-tried /) – 2012-07-06 11:04:48

+0

你在离开之前到达了吗?你期望答案是正面还是负面? – 2012-07-06 11:07:04

+0

我可以说:在任何人之前使用[JodaTime](http://joda-time.sourceforge.net/)? – radimpe 2012-07-06 11:08:32

回答

0

使用Apache公地郎jar文件.. 就拿deptTime和arrTime为StringBuffer的

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
    Calendar calendar = Calendar.getInstance(); 
    String dateIs = dateFormat.format(calendar.getTime()); 
    if (departureTime.reverse().substring(0,2).equalsIgnoreCase(arrivalTime.reverse().substring(0,2))) { 
     departureTime.reverse().insert(0, dateIs + " "); 
     arrivalTime.reverse().insert(0, dateIs + " "); 
    } else { 
     departureTime.reverse().insert(0, dateIs + " "); 
     calendar.add(Calendar.DATE, 1); 
     arrivalTime.reverse().insert(0,dateFormat.format(calendar.getTime()) +" "); 
    } 
    dateFormat.applyPattern("dd/MM/yyyy hh:mm aa"); 
    Date dateOne = dateFormat.parse(departureTime.toString()); 
    Date dateTwo = dateFormat.parse(arrivalTime.toString()); 

    DurationFormatUtils.formatDurationHMS(dateTwo.getTime() - dateOne.getTime()); 
    System.out.println(DurationFormatUtils.formatDurationWords(dateTwo.getTime() - 
                   dateOne.getTime(), 
                   true, true)); 
1
Calendar cal1 = Calendar.getInstance(); 
    cal1.set(Calendar.HOUR, 8); 
    cal1.set(Calendar.AM_PM, Calendar.PM); 


    Calendar cal2 = Calendar.getInstance(); 
    cal2.set(Calendar.HOUR, 4); 
    cal2.set(Calendar.AM_PM, Calendar.AM); 
    System.out.println(((cal1.getTimeInMillis()-cal2.getTimeInMillis())/1000)/3600); 
+0

想想闰秒...... :) – 2012-07-06 11:41:25