找出两个时间戳之间的差异

时间:2017-07-17 11:24:45

标签: java date time

我想找出给定时间戳和当前系统时间之间的差异。

我的代码,

Long timeStamp=1500462813;  
long diff=(timeStamp*1000L) - System.currentTimeMillis();
我得到的差异不是我所表达的。

实施例。 (1500462813 * 1000)= -1500290013000 172800000

这是日期为6/24/1975,5:30:00 AM 我期待7/19/2017,下午4:43:33。

想要找出当前系统时间和给定时间戳之间的差异,以便为剩余时间运行计时器。

4 个答案:

答案 0 :(得分:6)

首先,我看到您使用的是原始类型long和类Long。这不是一个好主意。如果您没有充分的理由使用该课程,请更好地使用long

您正在使用整数初始化类Long

Long timeStamp=1500462813;

这实际上是一个编译器错误。所以你的代码无法编译。

如果我理解你的问题是正确的,你希望剩下的时间到达日期。你实际上是在得到它。以毫秒为单位。您的结果是时间戳日期的剩余时间。

此结果本身不是Date。这只是您所需日期的毫秒数。

答案 1 :(得分:3)

试试这个方法:

public static long getDateDiff(long timeUpdate, long timeNow, TimeUnit timeUnit)
{
    long diffInMillies = Math.abs(timeNow- timeUpdate);
    return timeUnit.convert(diffInMillies, TimeUnit.MILLISECONDS);
}

它为您提供任何单位(天,年,......)的差异。

long timestamp1 = 1500462813000;
long timestamp2 = System.currentTimeMillis();
long diffInDays = getDateDiff(timestamp1, timestamp2, TimeUnit.DAYS);

答案 2 :(得分:1)

尝试:

long diff= System.currentTimeMillis() - givenTimeStamp;

答案 3 :(得分:0)

我认为你应该找到像这样的差异

long timeStamp=System.currentTimeMillis();  
long diff=(timeStamp-1500462813000);

System.currentTimeMillis()将始终大于您当前的