两个日期之间的时差(Android)

萨夫罗夫

我需要两个日期之间的时间。假设dateStart = 1470712122173dateStop = 1470712127320这两个日期之间的差等于5147So,据此我希望得到一个答案= 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章