将经过的毫秒转换为正确的Java日期格式?

Esh*_*Esh 3 java datetime elapsed elapsedtime

我在开发过程中陷入困境,我有这样的要求,我需要找到两个日期之间的延迟,即.. currentdate-date from database

我需要以格式显示延迟dd:hh:mm.在参考了很多参考文献后,我发现如何转换为单个毫秒小时和分钟,但是我期待的是:如果结果是一些X毫秒,我需要以适当的分钟和秒格式显示它

例如:2天:03分钟:46秒

这是我使用的代码:

Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.setTime(date);
calendar2.setTime(date1);
long milliseconds1 = calendar1.getTimeInMillis();
long milliseconds2 = calendar2.getTimeInMillis();
long diff = milliseconds1 - milliseconds2;
System.out.println("diff ::"+diff);
long diffSeconds = diff / 1000;
long diffMinutes = diff / (60 * 1000);
long diffHours = diff / (60 * 60 * 1000);
long diffDays = diff / (24 * 60 * 60 * 1000);
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我做些什么呢?请指导我..

Jon*_*eet 8

使用Joda时间.Java API不包含处理"两个日期/时间值之间的差异"的任何内容.在Joda Time中,您可以选择Period(实际上是以日历为中心的差异)和a Duration(实际上只是经过时间的差异).

理想情况下,使用Joda Time来解决所有日期/时间问题 - 这是一个更好,更好的API.

在这种情况下,我怀疑你在逻辑上得到了一个Duration,但是你想要将它转换为a Period以便使用PeriodFormatterfor string转换.