gpt4 book ai didi

java - 如何在java中将时间字符串与当前时间进行比较?

转载 作者:搜寻专家 更新时间:2023-11-01 01:03:45 27 4
gpt4 key购买 nike

我有一个像“15:30”这样的时间字符串,我想将该字符串与当前时间进行比较。请推荐一些简单的。以及如何以小时分钟格式获取当前时间("HH:mm")

最佳答案

tl;dr

LocalTime
.now()
.isAfter(
LocalTime.parse( "15:30" )
)

详情

您应该反过来思考:如何将该字符串转换为时间值。您不会通过将数字转换为字符串来尝试数学。日期时间值也是如此。

避免使用旧的捆绑类,java.util.Date 和 .Calendar,因为它们出了名的麻烦,在设计和实现上都有缺陷。它们被新的 java.time package 取代了在 Java 8 . java.time 的灵感来自 Joda-Time .

两者都是java.timeJoda-Time提供一个类来捕获没有任何时区日期的时间:LocalTime

java.time

使用 Java 内置的 java.time 类,特别是 LocalTime .获取您本地时区的当前时间。根据您的输入字符串构建一天中的时间。与 isBeforeisAfterisEqual 方法进行比较。

LocalTime now = LocalTime.now();
LocalTime limit = LocalTime.parse( "15:30" );
Boolean isLate = now.isAfter( limit );

最好指定您想要/期望的时区,而不是隐式依赖 JVM 当前的默认时区。

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;
LocalTime now = LocalTime.now( z ); // Explicitly specify the desired/expected time zone.
LocalTime limit = LocalTime.parse( "15:30" );
Boolean isLate = now.isAfter( limit );

乔达时间

本例中使用 Joda-Time 库的代码恰好与上面看到的 java.time 代码几乎相同。

注意 Joda-Time项目现在在maintenance mode ,团队建议迁移到 java.time类。


关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在在maintenance mode , 建议迁移到 java.time类。

要了解更多信息,请参阅 Oracle Tutorial .并在 Stack Overflow 中搜索许多示例和解释。规范为 JSR 310 .

从哪里获取 java.time 类?

ThreeTen-Extra项目用附加类扩展 java.time。该项目是 future 可能添加到 java.time 的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter , 和 more .

关于java - 如何在java中将时间字符串与当前时间进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24927701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com