Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查看JSP站点中的时间戳是否超过24小时_Java_Html_Jsp - Fatal编程技术网

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

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

我正在制作一个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";
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
中有了更好的功能。