我正在开发一个可以记录旅行时间的应用程序

考虑以下示例:

行程1:距离:550公里;行程时间:14:55(14小时55分钟)

行程2:距离:230公里;旅行时间:12:25

行程3:距离:140公里;前往时间:10:44

我将旅行时间存储得很长(1970年1月1日为毫秒)。一切正常,直到旅行时间超过24小时,或者很明显,当我想显示旅行的总时数。

有没有一种方法可以将日期格式化为一个字符串,该字符串将日期显示为小时和分钟,而不是日期的小时和分钟?

当我的值为26:10(26小时10分钟)时,SimpleDateFormat将显示“ 02:10”,直到第二天,而不是所需的“ 26:10”。有没有解决的办法,还是我最好为自己创建一个解析器?不要介意这是否是答案,只是不想重新发明轮子;)

提前致谢

最佳答案

您可以改为手动计算:

long differenceInMilliseconds = ...;
long totalSeconds = differenceInMilliseconds / 1000;

int hours = totalSeconds / 3600;
totalSeconds = totalSeconds % 3600;

int minutes = totalSeconds / 60;
int seconds = totalSeconds % 60;

07-24 09:28