Java 时差计算问题

Java 时差计算问题,java,Java,在我的应用程序中,我有一个名为Symbols的表,每8分钟就会不断更新一次 符号表中的每条记录都有一个名为的属性,该属性在更新,其值在时间戳中,如图所示 "updated_at" : NumberLong("1375715967249") 我的任务是从符号表向用户显示更新的数据 如果符号在9分钟内未更新,我需要执行特定任务,如果更新了,则需要执行不同的任务 我遵循这个逻辑,请让我知道这是否有任何环孔??(我的意思是像白天一样的环境——或任何类似的环境) UNIX时间戳不关心时区、UTC闰秒或

在我的应用程序中,我有一个名为Symbols的表,每8分钟就会不断更新一次

符号表中的每条记录都有一个名为的属性,该属性在更新,其值在时间戳中,如图所示

 "updated_at" : NumberLong("1375715967249")
我的任务是从符号表向用户显示更新的数据

如果符号在9分钟内未更新,我需要执行特定任务,如果更新了,则需要执行不同的任务

我遵循这个逻辑,请让我知道这是否有任何环孔??(我的意思是像白天一样的环境——或任何类似的环境)


UNIX时间戳不关心时区、UTC闰秒或任何东西。这只是一个线性测量时间流逝的数字。如果你也不在乎挂钟的时间,那就没问题了。您只需注意以正确的方式将源材料转换为UNIX时间戳。

最好以这种方式尝试

    long timeStamp = 1375715967249l;
    long currTime = System.currentTimeMillis();
    if ((currTime - timeStamp) > 10*60*1000) {
        System.out.println("Greater than 10 minutes since executed");
    } else {
        System.out.println("Lesser than 10 minutes since executed");
    }

10分钟=10*60*1000毫秒

1分钟!=600000毫秒…不到十分钟,isI将使用System.currentTimeMillis(),而不是用日期将其包装,然后再将其展开。@PeterLawrey谢谢,但正在使用System.currentTimeMillis()在高多线程应用程序中是否安全???@Kiran不管怎样,
Date
构造函数正在做同样的事情。如果您查找源代码,
public Date(){this(System.currentTimeMillis());}
或TimeUnit.MINUTES.toMillis(10),它明确地传达了您要做的事情。
    long timeStamp = 1375715967249l;
    long currTime = System.currentTimeMillis();
    if ((currTime - timeStamp) > 10*60*1000) {
        System.out.println("Greater than 10 minutes since executed");
    } else {
        System.out.println("Lesser than 10 minutes since executed");
    }