检查两个长值(毫秒)是否属于同一秒的最有效方法是什么

时间:2010-03-01 08:13:37

标签: java time compare

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

感谢。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

这是TimeUnit.MILLISECONDS.toSecond(long d)背后的代码:

public long toSeconds(long d) { return d/(C3/C2); }

其中C2C3是静态常量。你可以保存一个分区...在这种情况下,我更喜欢你的实际代码,它更容易理解

答案 2 :(得分:1)

假设t1和t2是时间戳。例如,来自System.currentTimeMillis()

public static boolean isSameSecond(long t1, long t2){
  return (t1/1000) == (t2/1000)
}