为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

至尊宝的传说 2022-01-06 19:43:35
我正在制作一个 JSP 站点,在那里我有点挣扎我正在使用 bash 来 ping IP - 并为最后一次更改设置时间戳 这由 Bash 设置为:date "+%Y-%m-%d %H:%M:%S我如何检查天气这个时间戳设置是否小于 24 小时。如果 VPN 在不到 24 小时前断开连接的含义 - 它会标记为黄色文本。
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

时间

由于您将问题标记为 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等等。旧类的设计很差,所以我建议你使用现代类。


查看完整回答
反对 回复 2022-01-06
?
慕雪6442864

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());


查看完整回答
反对 回复 2022-01-06
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信