java中如何比较时间字符串和当前时间?

2023-11-23

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


tl;dr

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

Details

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

避免使用旧的捆绑类 java.util.Date 和 .Calendar,因为它们非常麻烦,并且在设计和实现方面都有缺陷。他们被新的取代java.time包 in Java 8。 java.time 的灵感来自于乔达时间.

Both java.time and 乔达时间提供一个类来捕获一天中的时间,而无需任何日期到时区:LocalTime.

java.time

使用 Java 内置的 java.time 类,特别是LocalTime。获取您当地时区的当前时间。根据您的输入字符串构造一个时间。与isBefore, isAfter, or 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 代码几乎相同。

请注意乔达时间项目现已在维护模式,团队建议迁移到java.time类。


关于 java.time

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

The 乔达时间项目,现在在维护模式,建议迁移到java.time类。

要了解更多信息,请参阅甲骨文教程。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310.

从哪里获取 java.time 类?

  • Java SE 8, Java SE 9, 然后
  • 内置。
  • 具有捆绑实现的标准 Java API 的一部分。
  • Java 9 添加了一些小功能和修复。
  • Java SE 6 and Java SE 7
  • 许多 java.time 功能都向后移植到 Java 6 和 7三十后端口.
  • Android
  • The 三十ABP项目适应三十后端口(如上所述)专门针对 Android。
  • See 如何使用 ThreeTenABP....

The 三十额外项目通过附加类扩展了 java.time。该项目是 java.time 未来可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如Interval, YearWeek, YearQuarter, and more.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中如何比较时间字符串和当前时间? 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • bash 脚本中的源文件

    我正在使用两个版本的 ROS 要使用它 我必须为特定版本获取一些环境变量 我想创建一个脚本来执行此操作 但是 如果我创建如下所示的脚本 则未设置变量 它们可能是在子 shell 中设置的 如何将文件发送到主终端 shell 来源 sh so
  • OutputStreamWriter 不追加

    原始代码及其将数据保存到SD卡的工作原理 Writing data to internal storage btnSaveData setOnClickListener new View OnClickListener Override p
  • 动画 WPF DataGrid 行详细信息

    任何人都可以帮助我在打开和关闭时对 WPF DataGrid 行详细信息进行动画处理 例如 当选择行时 幻灯片像手风琴一样打开 而当未选择行时 幻灯片会关闭 我需要一个简单的概念证明 在此先感谢您的帮助 冗长但有效
  • 如果触发器中不存在

    我有两个表concept access 和concept access log 我想创建一个触发器 每次从concept access 中删除某些内容时都会起作用 检查日志表中是否有类似的记录 如果没有 则在从concept access
  • 如何声明 constexpr extern?

    是否可以声明变量extern constexpr并在另一个文件中定义它 我尝试了一下 但是编译器给出了错误 声明constexpr多变的 i 不是一个定义 in h extern constexpr int i in cpp constex
  • 如何创建具有自定义屏幕尺寸的新模拟器?

    在 avd 管理器中 当我尝试创建新的 avd 时 有皮肤部分 但是更新sdk后 我看不到这个部分了 如何使用我自己的屏幕尺寸而不是现有的屏幕尺寸 这些是新模拟器屏幕的旧外观和新外观 old one new one 如果您使用的是最新版本的
  • 无法让 ASP.NET 4 Web API 返回成功 POST 的状态代码“201 - 创建”

    我正在尝试返回 HTTP 状态代码201 Created使用 ASP NET 4 Web API 进行 RESTful POST 操作 但我总是得到200 OK 我目前正在 IIS 7 5 7600 16385 VS 2010 Profes
  • IE+溢出:隐藏

    我不知道这是一个问题还是错误 但是当我使用时overflow hidden 在IE中选择文本并将光标移动到页面底部 页面正在滚动 我尝试了IE9 IE11 当我使用 Firefox Opera Chrome Safari 时 页面不滚动 我
  • 'str' 对象没有 Python 中 Tensorflow 的属性 'decode' [重复]

    这个问题在这里已经有答案了 我想运行一段代码 它是使用 Tensorflow 用 Python3 编写的 我可以运行代码 但是当代码运行时 我尝试在单独的 Anaconda Prompt 中运行另一个代码并进行一些更改 然后我停止了代码 现
  • 双手柄滑块android [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 I was wondering if anyone had some code or knew of a place that has code f
  • 如何为 Firestore 中的不同字段组合创建索引?

    假设我有一个users我想在我的页面中过滤的集合 要过滤的字段是name age location 为此 我创建了一个复合索引 姓名 年龄 位置 问题是我希望有机会按 3 个名称的任意组合进行过滤 姓名和年龄 姓名和位置 年龄和位置 当我尝
  • 在 Android 中使用意图分享到 Facebook

    我使用以下代码来分享内容 Intent intent new Intent Intent ACTION SEND intent setType text plain intent putExtra Intent EXTRA TEXT The
  • Firebase Firestore:orderBy 与 where 结合导致错误“操作被拒绝”

    我正在查看 Firebase Cloud Firestore文档对于 orderBy 当我尝试执行这个时 var facultyQuery facultyRef where department Core Teacher orderBy b
  • 具有整数参数的模板的部分特化

    我正在尝试做一些部分专业化的事情 我有一个tuple 我想从某个元素索引迭代到第一个元组索引 累积每个类型的值tuple 这似乎是使用递归模板实例化的简单问题 问题是 我似乎无法让递归工作 为了停止递归 我需要部分特化元组索引 0 处的模板
  • softmax函数的导数解释[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试计算 softmax 激活函数的导数 我找到了这个 https math stackexchange com questions 945871 derivative of
  • 写入文件时插入换行符吗?

    所以我的代码如下所示 try while line br readLine null Matcher m urlPattern matcher line while m find System out println m group 1 t
  • R 返回行名称的部分匹配

    我遇到了以下问题 vec lt c a11 b21 c31 df lt data frame a c 0 0 0 b c 1 1 1 row names vec df a returns df a a b a11 0 1 However a
  • 类型变量不明确但在 ghci 中没有?

    任何人都可以解释为什么 haskell 在下面的示例中强制执行显式类型签名以及如何修改它以避免需要显式声明 import qualified Data List as L main do print length L nub 1 1 2 3
  • 错误:不兼容的字符编码:UTF-8 和 ASCII-8BIT

    我收到错误incompatible character encodings UTF 8 and ASCII 8BIT 当视图在数据库中发现一些字符 如 等 我的环境是 轨道 3 2 5 红宝石 1 9 4p194 数据库 Oracle 10
  • java中如何比较时间字符串和当前时间?

    我有一个像 15 30 这样的时间字符串 我想将该字符串与当前时间进行比较 请建议一些简单的事情 以及如何以小时分钟格式获取当前时间 HH mm tl dr LocalTime now isAfter LocalTime parse 15