2 回答

TA貢獻1827條經驗 獲得超8個贊
時間
由于您將問題標記為 java,我假設您想在 JSP 中用 Java 執行此操作。
ZoneId bashZone = ZoneId.of("Europe/Copenhagen");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
String timestampString = "2018-11-08 00:07:22";
ZonedDateTime timestamp = LocalDateTime.parse(timestampString, formatter)
.atZone(bashZone);
if (timestamp.isBefore(ZonedDateTime.now(bashZone).minusHours(24))) {
System.out.println(timestampString + " is more than 24 hours ago");
} else {
System.out.println(timestampString + " is *not* more than 24 hours ago");
}
剛才運行代碼的時候,輸出是:
2018-11-08 00:07:22不超過 24 小時前
如果碰巧不是歐洲/哥本哈根,請替換您的 bash 使用的時區。ZoneId.systemDefault()如果您相信 JVM 時區設置一致,則可以使用。它并不總是如此,而且甚至可以在同一 JVM 中運行的另一個程序中隨時更改,因此很脆弱。
java.time是現代Java的日期和時間的API,它從2014年起已取代舊的日期,時間類Date,SimpleDateFormat等等。舊類的設計很差,所以我建議你使用現代類。

TA貢獻1812條經驗 獲得超5個贊
將該字符串時間戳解析為LocalDateTime. 您可以使用 LocalDateTime 方法來檢查您的日期是否早于 24 小時。
String str = "2018-01-20 11:32:53";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date = LocalDateTime.parse(str, dtf);
return date.plus(1, ChronoUnit.DAYS).isBefore(LocalDateTime.now());
添加回答
舉報