计算 01.01.2013 和现在之间差异的最佳方法是什么,所以结果看起来像 25 天 16 小时 18 分 43 秒?
问问题
3432 次
2 回答
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;
差异以毫秒为单位。然后你可以简单地做一些数学来计算天/小时/分钟/秒
于 2012-12-05T11:15:05.297 回答
0
由于您没有提供任何代码,因此我不会只为您执行此操作,但是出于某种原因(首先是时区),所说的时间可能是一个有趣的话题。
我建议这个很棒的图书馆http://joda-time.sourceforge.net/
Joda-Time 为 Java 日期和时间类提供了质量替代品。该设计允许多个日历系统,同时仍提供简单的 API。“默认”日历是 XML 使用的 ISO8601 标准。格里高利、儒略、佛教、科普特、埃塞俄比亚和伊斯兰系统也包括在内,我们欢迎进一步添加。支持类包括时区、持续时间、格式和解析。
看看使用句号和类似的东西
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);
于 2012-12-05T11:16:22.743 回答