我需要两个日期之间的时间。假设dateStart = 1470712122173
和dateStop = 1470712127320
。这两个日期之间的差等于5147
So,据此我希望得到一个答案= 5秒,但我看到了19:00:05
。这19个小时来自哪里?
毫秒代码(= 5147)->时间:
private string foo(long dateStart, long dateStop) {
long diff = dateStop - dateStart;
DateFormat simple = SimpleDateFormat.getTimeInstance();
Date date = new Date(diff);
return simple.format(date);
}
谢谢您的解释。
您需要正确理解基本概念。当您在两个Date
对象之间求差时,您将获得两个时间点之间的持续时间,尝试将其视为另一个时间点是没有意义的。
这是一个使用Java 8时间API来获取两个时间点(java.time.Instant
)之差的示例:
import java.time.Duration;
import java.time.Instant;
public class TimeDifferenceSample {
static Duration diff(Instant start, Instant end) {
return Duration.between(start, end);
}
public static void main(String [] args) {
long start = 1470712122173L;
long end = 1470712127320L;
Duration dur = diff(Instant.ofEpochMilli(start), Instant.ofEpochMilli(end));
System.out.println(dur.getSeconds() + " seconds");
}
}
输出:
5 seconds
对于Android,我不是专家,但是您可以查看The Joda Time Project,它提供了类似的功能。我还在这里找到了Android版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句