TL;博士
LocalTime.now()
.isAfter( LocalTime.parse( "15:30" ) )
细节
您应该反过来考虑:如何将该字符串转换为时间值.您不会通过将数字转换为字符串来尝试数学.日期时间值也是如此.
避免使用旧的捆绑类java.util.Date和.Calendar,因为它们在设计和实现方面都非常麻烦,存在缺陷.它们在Java 8年被新的java.time package取代.而java.time的灵感来自于Joda-Time.
java.time和Joda-Time都提供了一个类,用于捕获没有任何日期到时区的时间:LocalTime.
java.time
使用Java内置的java.time类,特别是LocalTime.获取当地时区的当前时间.根据输入字符串构造一个时间.与isBefore,isAfter或isEqual方法进行比较.
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看到的代码相同.
请注意07002项目现在是maintenance mode,团队建议迁移到java.time课程.
关于java.time
要了解更多信息,请参阅Oracle Tutorial.并搜索Stack Overflow以获取许多示例和说明.规格是JSR 310.
从哪里获取java.time类?
>内置.
>部分标准Java API,带有捆绑实现.
> Java 9增加了一些小功能和修复.
>大部分java.time功能都被反向移植到Java 6& 07年7月7日.
> ThreeTenABP项目专门针对Android调整了ThreeTen-Backport(如上所述).
>见How to use ThreeTenABP….
ThreeTen-Extra项目使用其他类扩展了java.time.该项目是未来可能添加到java.time的试验场.您可以在这里找到一些有用的类,例如Interval,YearWeek,YearQuarter和more.