android中两个日期的区别

时间:2013-12-04 13:29:24

标签: java android

我试图在当前时间和某一天之间的毫秒差异中说2013/12/25

我正在使用此代码

Calendar thatDay = Calendar.getInstance();
thatDay.set(Calendar.DAY_OF_MONTH,25);
thatDay.set(Calendar.MONTH,11); // 0-11 so 1 less
thatDay.set(Calendar.YEAR, 2013);


Calendar today = Calendar.getInstance();

long diff =  thatDay.getTimeInMillis() - today.getTimeInMillis(); 
long days = diff / (24 * 60 * 60 * 1000);

但是这段代码有时会给出正确的价值一段时间略有差异..请帮助人们

3 个答案:

答案 0 :(得分:1)

在观察夏令时的地方,一年中的一天是23小时,另一天是25小时,因此假设每天24小时是错误的。官方时区也可以改变。

解决问题的“正确”方法是使用设计良好的库,例如Joda time,但作为快速修复,您可以对结果进行舍入,以便几个小时向一个方向或另一个方向的偏差不会物:

long days = Math.round((double) diff / (24 * 60 * 60 * 1000);

答案 1 :(得分:0)

我使用非常好的joda时间库回答了类似问题here

答案 2 :(得分:0)