我正在嘗試確定時間戳是否超過30秒,但由於某種原因,它的返回時間超過了30秒,甚至還沒有過幾秒鐘。檢查時間戳是否超過30秒
public static Boolean cooldown(int id) {
Calendar now = Calendar.getInstance();
now.add(Calendar.SECOND, -secondsAgo);
long timeAgo = now.getTimeInMillis();
if (cooldown.containsKey(id)) {
System.out.println(cooldown.get(id) + " | " + timeAgo);
// Stored timestamp always older than timeAgo
if (cooldown.get(id) < timeAgo) {
cooldown.remove(id);
} else {
// This code should be executed, as I am running the function one after another from same UUID not even a second or two apart.
return false;
}
}
now = Calendar.getInstance();
cooldown.put(id, now.getTimeInMillis());
return true;
}
請發佈[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。你的代碼並非如此什麼是「目標」,你如何稱呼「冷卻時間()」? – Andreas
所有的代碼真的是多餘的。唯一的問題是爲什麼時間戳會比它更早。 – JordanSasquatchMan
如果代碼的其餘部分非常冗餘,那麼創建一個最簡單的例子應該很簡單,對吧? –