一尘不染

java计算两个时间戳之间的时间

java

我需要计算两个日期之间经过的时间。

这里要注意的是,我需要像YouTube一样用视频评论时间戳来显示它。也就是说,仅以最大的方式显示它。

例如,

  • 如果时间是50秒前,应该说是50秒前。
  • 如果时间超过一分钟,则应说一分钟前/十分钟前,等等。
  • 如果时差是1小时30分钟,则应显示:一个小时前。
  • 如果时间是一个半星期而不是一个星期前应该说的话。
  • 如果时间超过一个月,则应说一个月前/两个月前,等等。
  • 等等等等..

那么解决这个问题的最佳方法是什么?我应该使用caseif语句来返回类似这样的方法吗?还是有更好的方法(也许是已经在做类似事情的图书馆)?


阅读 220

收藏
2020-12-03

共1个答案

一尘不染

使用DateUtils.getRelativeTimeSpanString(很长时间,很久了,很长时间minResolution)time是开始时间,now是结束时间(以毫秒为单位)。要报告“秒前”,请将minResolution设置为零。

例:

String result = DateUtils.getRelativeTimeSpanString(1306767830, 1306767835, 0);
// result = "5 seconds ago"
2020-12-03