目前我正在使用TimeUnit.MILLISECONDS.toSeconds(valueInMillis)
来检查两毫秒的值是否来自同一秒。你能推荐一个更快的算法来进行这项操作吗?
感谢。
答案 0 :(得分:5)
将每个除以1000.由于它们是整数/长整数,因此小数将被截断。如果它们在相同的秒内,则值将相同。
答案 1 :(得分:3)
这是TimeUnit.MILLISECONDS.toSecond(long d)
背后的代码:
public long toSeconds(long d) { return d/(C3/C2); }
其中C2
,C3
是静态常量。你可以保存一个分区...在这种情况下,我更喜欢你的实际代码,它更容易理解
答案 2 :(得分:1)
假设t1和t2是时间戳。例如,来自System.currentTimeMillis()
public static boolean isSameSecond(long t1, long t2){
return (t1/1000) == (t2/1000)
}