P. *_*rov 0 java android date-arithmetic
我需要在两个日期之间找到一个时间。让我们说dateStart = 1470712122173和dateStop = 1470712127320。这两个日期之间的差异等于5147
所以,根据这个我希望得到一个答案 = 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);
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的解释。
您需要正确理解基本概念。当您在两个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");
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
5 seconds
Run Code Online (Sandbox Code Playgroud)
对于Android,我不是专家,但您可以查看提供类似功能的The Joda Time Project。我还在这里找到了一个Android 版本。
| 归档时间: |
|
| 查看次数: |
677 次 |
| 最近记录: |