计算两个unix时间戳的时差,并在Java中转换为分钟

时间:2015-10-08 09:18:21

标签: java unix

我有两个 UNIX 时间戳,我想比较它们,然后在几分钟内得到差异。

E.g。 1418600222 and 1418602180,其中1418602180 - 1418600222在几分钟内给出了答案。我试图谷歌它,但大多数结果都在javascript,我对它的理解相当有限。

4 个答案:

答案 0 :(得分:3)

        long t1=1418602180;
        long t2=1418600222;
        long minutes=Math.abs(t1-t2)/60;
        System.out.println(minutes);

答案 1 :(得分:2)

查看java.util.concurrent.TimeUnit

java.util.concurrent.TimeUnit#SECONDS.toMinutes()

答案 2 :(得分:1)

试试这个

public class tets {
public static void main(String args[])
{
    long timeStamp= 1418602180 - 1418600222;
    java.util.Date time=new java.util.Date(timeStamp*1000);
    System.out.println(time.getMinutes());
}
}

输出 2

更新

在我之前的示例中,我使用了已弃用的方法。你可以使用如下的joda时间

LocalDateTime d1=new LocalDateTime(new Date(1418602180 *1000));
    LocalDateTime d2=new LocalDateTime(new Date(1418600222*1000));

    System.out.println(d1);
    System.out.println(d2);
    int minutesDiff=Minutes.minutesBetween(d2, d1).getMinutes();
    System.out.println(minutesDiff);

答案 3 :(得分:1)

Unix时间戳(也称为纪元时间)就是1970-01-01 00:00:00以来的秒数。

鉴于它是一个数字,您可以计算与任何其他数字的差异。你会在几秒钟内得到差异。将此除以60得到分数差异。

你的例子:

1418602180 is 2014-12-15 00:09:40 GMT
1418600222 is 2014-12-14 23:37:02 GMT

difference is 1418602180 - 1418600222 = 1958 seconds
1958 / 60 = 32.6333 minutes