Java 查看JSP站点中的时间戳是否超过24小时
我正在制作一个JSP站点,在这里我有点挣扎 我正在使用bash对IP进行ping,并为最后一次更改设置时间戳 这由Bash设置为:Java 查看JSP站点中的时间戳是否超过24小时,java,html,jsp,Java,Html,Jsp,我正在制作一个JSP站点,在这里我有点挣扎 我正在使用bash对IP进行ping,并为最后一次更改设置时间戳 这由Bash设置为: date "+%Y-%m-%d %H:%M:%S 如何检查此时间戳是否设置为小于24小时。 如果VPN在不到24小时前被断开,它将被标记为黄色文本 将该字符串时间戳解析为LocalDateTime。 您可以使用LocalDateTime方法检查您的日期是否早于24小时 String str = "2018-01-20 11:32:53"; DateTimeForm
date "+%Y-%m-%d %H:%M:%S
如何检查此时间戳是否设置为小于24小时。
如果VPN在不到24小时前被断开,它将被标记为黄色文本 将该字符串时间戳解析为
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());
java.time
因为您将问题标记为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使用的时区。如果您相信JVM时区设置是一致的,则可以使用ZoneId.systemDefault()
。它并不总是如此,而且可能在任何时候被更改,甚至是从运行在同一JVM中的另一个程序更改,所以它是脆弱的
java.time是现代的java日期和时间API,自2014年以来,它已经取代了旧的日期时间类date
、SimpleDateFormat
等。旧类的设计很差,所以我建议您使用现代类
链接:解释如何使用
java.time
“不到24小时”和“不到24小时前”是不同的。我不确定你到底在找什么,但我怀疑你是否能找到一个时间戳,表明“超过24小时”,因为这是一天中的小时限制。时间戳是一个单独的时刻,而不是一个持续时间。我在MYSQL中写了一个时间戳——用Bash作为日期创建“+%Y-%m-%d%H:%m:%S-当它进入我的JSP页面时-它是一个字符串。我想知道插入的时间戳是否大于或小于24小时。因此,将其解析为一个日期,并将其与系统日期进行比较。您需要知道您的bash
使用哪个时区。请不要教年轻人使用过时且臭名昭著的SimpleDateFormat
类。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其DateTimeFormatter
中有了更好的功能。