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

2022-09-03 03:35:26

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

这里的问题是,我需要像YouTube使用其视频评论时间戳一样显示它。也就是说,仅通过最大的度量来显示它。

例如

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

那么处理这个问题的最佳方法是什么呢?我是否应该使用 或 语句创建一个将返回类似内容的方法?或者有没有更好的方法(也许是一个已经做类似事情的库)?caseif


答案 1

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

例:

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

答案 2
 date1.getTime() - date2.getTime() 

这将返回 2 个日期之间的时间(以毫秒为单位)。只需将其转换为您想要显示的内容(例如,小时分钟秒)