我如何在 android 中获得两个日期之间的差异?尝试了所有事情并发布

新手上路,请多包涵

我在这里看到了所有的帖子,但我仍然不知道如何区分两个安卓日期。

这就是我所做的:

 long diff = date1.getTime() - date2.getTime();
Date diffDate = new Date(diff);

我得到:日期是 1970 年 1 月 1 日,两个小时后的时间总是更长…我来自以色列,所以两个小时是 timeOffset。

我怎样才能得到正常的差异???

原文由 Alex Kapustian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 685
2 个回答

你接近正确的答案,你得到这两个日期之间的毫秒差异,但是当你试图从这个差异中构建一个日期时,假设你想创建一个新的 Date 以该差异值作为其纪元时间的对象。如果您正在寻找以小时为单位的时间,那么您只需要对其进行一些基本算术 diff 以获得不同的时间部分。

爪哇:

 long diff = date1.getTime() - date2.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;

科特林:

 val diff: Long = date1.getTime() - date2.getTime()
val seconds = diff / 1000
val minutes = seconds / 60
val hours = minutes / 60
val days = hours / 24

所有这些数学运算都会简单地进行整数运算,因此它会截断所有小数点

原文由 Dan F 发布,翻译遵循 CC BY-SA 4.0 许可协议

    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);

原文由 Dude 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题