查看JSP站点中的时间戳记是否超过24小时

时间:2018-11-07 10:30:40

标签: java html jsp

我正在创建一个JSP站点,在其中我有点挣扎 我正在使用bash来ping IP-并为最后一次更改设置时间戳 Bash将其设置为:

date "+%Y-%m-%d %H:%M:%S

如何设置此时间戳记少于24小时的天气? 如果VPN在不到24小时前被取消连接,则含义是-标记为黄色文本。

2 个答案:

答案 0 :(得分:1)

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并非欧洲/哥本哈根,请替换您的bash使用的时区。如果您相信JVM时区设置是一致的,则可以使用ZoneId.systemDefault()。它并不总是如此,此外,甚至可以从运行在同一JVM中的另一个程序随时更改,因此非常脆弱。

java.time是现代的Java日期和时间API,自2014年以来已取代了旧的日期时间类DateSimpleDateFormat等。旧的类设计不好,所以我建议您使用现代的类。

链接: Oracle tutorial: Date Time解释了如何使用java.time

答案 1 :(得分:0)

将String时间戳解析为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());