我如何在Android中获得两个日期之间的差异?,尝试了所有内容并发布
我在这里看到了所有的帖子,但我仍然无法弄清楚如何在两个Android日期之间取得差异。
这就是我所做的:
long diff = date1.getTime() - date2.getTime();
Date diffDate = new Date(diff);
我得到:日期是1970年1月1日,时间总是在两个小时内更大......我来自以色列,所以这两个小时是时间Offset。
如何获得正常差异???
我在这里看到了所有的帖子,但我仍然无法弄清楚如何在两个Android日期之间取得差异。
这就是我所做的:
long diff = date1.getTime() - date2.getTime();
Date diffDate = new Date(diff);
我得到:日期是1970年1月1日,时间总是在两个小时内更大......我来自以色列,所以这两个小时是时间Offset。
如何获得正常差异???
你接近正确的答案,你得到了这两个日期之间以毫秒为单位的差异,但是当你试图从这个差异中构造一个日期时,它假设你想创建一个具有该差异值作为其纪元时间的新对象。如果你正在寻找一个以小时为单位的时间,那么你只需要做一些基本的算术来获得不同的时间部分。Date
diff
爪哇岛:
long diff = date1.getTime() - date2.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
Kotlin:
val diff: Long = date1.getTime() - date2.getTime()
val seconds = diff / 1000
val minutes = seconds / 60
val hours = minutes / 60
val days = hours / 24
所有这些数学运算将简单地做整数算术,所以它会截断任何小数点
long diffInMillisec = date1.getTime() - date2.getTime();
long diffInDays = TimeUnit.MILLISECONDS.toDays(diffInMillisec);
long diffInHours = TimeUnit.MILLISECONDS.toHours(diffInMillisec);
long diffInMin = TimeUnit.MILLISECONDS.toMinutes(diffInMillisec);
long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMillisec);