Java - 如何在使用Joda Time Jar时计算准确的时差 [英] Java-How to calculate accurate time difference while using Joda Time Jar
问题描述
我遇到了从下载的Joda时间罐的问题http://sourceforge.net/projects/joda-time/files/joda-time/2.2/ 。我可以使用以下代码片段获得结果
I'm having problem with Joda time jar that I downloaded from http://sourceforge.net/projects/joda-time/files/joda-time/2.2/ . I can get the result when I use the following snippet
static void timeDifferencewithJoda() {
String dateStart = "01/14/2012 09:29:58";
String dateStop = "01/15/2012 10:31:48";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " minutes, ");
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60 + " seconds.");
} catch (Exception e) {
e.printStackTrace();
}
}
结果是
1 days, 1 hours, 1 minutes, 50 seconds.
但是我面对这个时差的冲突。
But I face the confliction with this time difference .
01/14/2012 09:29:58
01/15/2012 10:31:48
这两个时间已经被声明,但没有迹象表明像AM或PM这样的时期。即,时间可能是早晨或晚上。如何得到确切的时间差?
here the two time has been declared ,but there's no indication to the period like AM or PM. ie., The time may be morning or evening .How to I get exact time difference ?
有关这方面的任何帮助将是有用的。
Any help regarding this will be useful.
推荐答案
使用 Joda格式化程序(非AM / PM)
Using Joda formatter (non AM/PM)
final String dateStart = "01/14/2012 09:29:58";
final String dateStop = "01/15/2012 10:31:48";
final DateTimeFormatter format = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
final DateTime dt1 = format.parseDateTime(dateStart);
final DateTime dt2 = format.parseDateTime(dateStop);
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " minutes, ");
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60 + " seconds.");
使用 Joda格式化程序(与AM / PM)
Using Joda formatter (with AM/PM)
final String dateStart = "01/14/2012 09:29:58 AM";
final String dateStop = "01/15/2012 10:31:48 PM";
final DateTimeFormatter format = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss a");
final DateTime dt1 = format.parseDateTime(dateStart);
final DateTime dt2 = format.parseDateTime(dateStop);
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " minutes, ");
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60 + " seconds.");
计算与周期
Calculate units between with Period
final Period period = new Period(dt1, dt2);
System.out.print(period.getDays() + " days, ");
System.out.print(period.getHours() + " hours, ");
System.out.print(period.getMinutes() + " minutes, ");
System.out.print(period.getSeconds() + " seconds.");
这篇关于Java - 如何在使用Joda Time Jar时计算准确的时差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!