【发布时间】:2013-12-04 13:29:23
【问题描述】:
我正在尝试获取当前时间和某一天之间的毫秒差异,比如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);
但是这段代码有时会给出正确的值,但有时会略有不同..请帮助大家
【问题讨论】:
-
虽然不是你的答案,但我建议你看看
date4jlibrary。非常简单的 api 来获取差异和基本日期的东西。这里date4j.net -
你也可以查看jodatime library(joda-time.sourceforge.net/installation.html)。
-
"这段代码有时会给出正确的值有时会略有不同"有什么不同?如果你整数除以结果,你会将 3.9 天截断为 3,这将是 1 天休息。是这样吗?
-
@zapl:相差一天。 20或21。但它与长无关。你可以使用 double ,结果是 21.0 或 20.0
-
@zapl .. 是的,你说得对.. 那是我的问题..