计算01.01.2013和现在之间的差异的最佳方法是什么,所以结果看起来像25天16小时18分43秒?
答案 0 :(得分:2)
String dateStop = "01.01.2013";
long now = System.currentTimeMillis():
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Date d1 = null;
Date d2 = null;
try {
d1 = new Date (now);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
long difference = d2.getTime() - d1.getTime();
long differenceBack = difference;
differenceBack = difference / 1000;
int secs = differenceBack % 60;
differenceBack /= 60;
int mins = differenceBack % 60;
differenceBack /= 60;
int hours = differenceBack % 24;
差异以毫秒为单位。然后你可以简单地计算一些数学来计算天/小时/分钟/秒
答案 1 :(得分:0)
由于你没有提供任何代码,我不打算为你做,但是说时间可能是一个有趣的话题,因为有各种原因(开始的时区)。
我会建议这个很棒的图书馆http://joda-time.sourceforge.net/
Joda-Time为Java日期和时间提供了高质量的替代品 类。该设计允许多个日历系统,同时仍然 提供简单的API。 “默认”日历是ISO8601标准 这是由XML使用的。格里高利,朱利安,佛教,科普特人, 还包括Ethiopic和伊斯兰教系统,我们对此表示欢迎 补充。支持类包括时区,持续时间,格式和 解析。
使用Periods和其他内容
DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
// period of 1 year and 7 days
Period period = new Period(start, end);
我使用类似的东西来创建一个倒计时时钟,但你在问题中没有说明你希望返回的值的格式(天,秒,分钟)。然而,在这方面,期间非常灵活。例如:
// able to calculate whole days between two dates easily
Days days = Days.daysBetween(start, end);
// able to calculate whole months between two dates easily
Months months = Months.monthsBetween(start, end);