Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这是检查两个长值(以毫秒为单位)是否属于同一秒的最有效方法_Java_Time_Compare - Fatal编程技术网

Java 什么';这是检查两个长值(以毫秒为单位)是否属于同一秒的最有效方法

Java 什么';这是检查两个长值(以毫秒为单位)是否属于同一秒的最有效方法,java,time,compare,Java,Time,Compare,目前,我正在使用TimeUnit.millises.toSeconds(valueInMillis)检查两个毫秒值是否来自同一秒。你能为这个操作推荐一个更快的算法吗 谢谢。将每个值除以1000。由于它们是整数/长整数,小数将被截断。如果它们在相同的秒数内,则值将相同。这是时间单位毫秒后的代码。到秒(长d): 其中,C2,C3为静态常数。您可以保存一个分区。。。在这种情况下,我更喜欢您的实际代码,假设t1和t2是时间戳,那么更容易理解。例如来自System.currentTimeMillis()的

目前,我正在使用
TimeUnit.millises.toSeconds(valueInMillis)
检查两个毫秒值是否来自同一秒。你能为这个操作推荐一个更快的算法吗


谢谢。

将每个值除以1000。由于它们是整数/长整数,小数将被截断。如果它们在相同的秒数内,则值将相同。

这是
时间单位毫秒后的代码。到秒(长d)


其中,
C2
C3
为静态常数。您可以保存一个分区。。。在这种情况下,我更喜欢您的实际代码,假设t1和t2是时间戳,那么更容易理解。例如来自System.currentTimeMillis()的


... 除非他也需要去掉其余的日期(从一年到一分钟),否则这个问题会留下解释的余地;)我需要检查它们是否来自同一年/月/日/小时/分钟/秒如果不关心年/月/日,则可以通过模数转换删除上限值,两个值之间的最大差值为几天。希望这能让问题更清楚请描述一下“从同一秒开始”是什么意思。你为什么认为,你有一个性能问题?所使用的代码只是一个简单的设备。@Thorbjørn:我可能会在短时间内收到数百个数据,我只想跟踪每秒最新的值@阿恩,我明白这是一个简单的划分,但我对如何节省一些处理时间的想法已经没有了,我认为这可能值得一试此外,此操作每秒将执行数百次,因此节省一点成本肯定会有所帮助。我相信,如果您描述“从同一秒开始”的含义,您就有了您的算法……如果C2和C3是常量,编译器将计算C3/C2的结果并使用它。甚至更好;)那就越快越好
public long toSeconds(long d) { return d/(C3/C2); }
public static boolean isSameSecond(long t1, long t2){
  return (t1/1000) == (t2/1000)
}