我试图在当前时间和某一天之间的毫秒差异中说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);
但是这段代码有时会给出正确的价值一段时间略有差异..请帮助人们
答案 0 :(得分:1)
在观察夏令时的地方,一年中的一天是23小时,另一天是25小时,因此假设每天24小时是错误的。官方时区也可以改变。
解决问题的“正确”方法是使用设计良好的库,例如Joda time,但作为快速修复,您可以对结果进行舍入,以便几个小时向一个方向或另一个方向的偏差不会物:
long days = Math.round((double) diff / (24 * 60 * 60 * 1000);
答案 1 :(得分:0)
我使用非常好的joda时间库回答了类似问题here。
答案 2 :(得分:0)
使用Joda Time库 - http://joda-time.sourceforge.net/faq.html#datediff