计算差异.鉴于我们有两个不同的时间和日期字符串,两次之间

use*_*720 6 java time date

我有时间数据分为两个字符串 - 一个字符串表示日期,一个字符串表示时间.
我想计算差异.在Java中这样两次.
例如

  • 时间1:"26/02/2011"和"上午11:00"
  • 时间2:"27/02/2011"和"12:15 AM"

差异将是13小时15分钟.

tia*_*014 11

String str_date1 = "26/02/2011";
String str_time1 = "11:00 AM";

String str_date2 = "27/02/2011";
String str_time2 = "12:15 AM" ;

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
Date date1 = formatter.parse(str_date1 + " " + str_time1);
Date date2 = formatter.parse(str_date2 + " " + str_time2);

// Get msec from each, and subtract.
long diff = date2.getTime() - date1.getTime();

System.out.println("Difference In Days: " + (diff / (1000 * 60 * 60 * 24)));
Run Code Online (Sandbox Code Playgroud)

Obs:这仅作为aproximation有效.看看花园小径上的失时.)


Bal*_*a R 7

try {
    String date1 = "26/02/2011";
    String time1 = "11:00 AM";
    String date2 = "27/02/2011";
    String time2 = "12:15 AM";

    String format = "dd/MM/yyyy hh:mm a";

    SimpleDateFormat sdf = new SimpleDateFormat(format);

    Date dateObj1 = sdf.parse(date1 + " " + time1);
    Date dateObj2 = sdf.parse(date2 + " " + time2);
    System.out.println(dateObj1);
    System.out.println(dateObj2);

    long diff = dateObj2.getTime() - dateObj1.getTime();
    double diffInHours = diff / ((double) 1000 * 60 * 60);
    System.out.println(diffInHours);
    System.out.println("Hours " + (int)diffInHours);
    System.out.println("Minutes " + (diffInHours - (int)diffInHours)*60 );

} catch (ParseException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

产量

Sat Feb 26 11:00:00 EST 2011
Sun Feb 27 00:15:00 EST 2011
13.25
Hours 13
Minutes 15.0
Run Code Online (Sandbox Code Playgroud)