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中如何比较时间字符串和当前时间? 的相关文章

  • JPA 中的复合键

    我想创建一个具有自动生成的主键的实体 而且还有一个由其他两个字段组成的唯一复合键 我如何在 JPA 中执行此操作 我想这样做是因为主键应该用作另一个表中的外键 并且使其复合并不好 在下面的代码片段中 我需要命令和模型是唯一的 pk当然是主键
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • 是否有任何简单(且最新)的 Java 框架可用于在 Swing 应用程序中嵌入电影?

    我正在构建一个小型 Swing 应用程序 我想在其中嵌入一部电影 重要的是 这个应用程序是一个 WebStart 应用程序 并且该库应该能够打包在我启动的 jnlp 中 即 不依赖于本机库 我知道并尝试过 JMF 但我认为与其他框架相比 其
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • 使用 Mockito 模拟某些方法,但不模拟其他方法

    有没有办法使用 Mockito 模拟类中的某些方法 而不模拟其他方法 例如 在这个 诚然是人为的 Stock我想嘲笑的班级getPrice and getQuantity 返回值 如下面的测试片段所示 但我想要getValue 执行乘法 如
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • Resteasy 可以查看 JAX-RS 方法的参数类型吗?

    我们使用 Resteasy 3 0 9 作为 JAX RS Web 服务 最近切换到 3 0 19 我们开始看到很多RESTEASY002142 Multiple resource methods match request警告 例如 我们
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • 配置“DataSource”以使用 SSL/TLS 加密连接到 Digital Ocean 上的托管 Postgres 服务器

    我正在尝试托管数据库服务 https www digitalocean com products managed databases on 数字海洋网 https en wikipedia org wiki DigitalOcean 创建了
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp

随机推荐

  • 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