如何在 Java 中表示和操作大于 24:00 的时间值?

2023-12-07

我目前正在一个应用程序域中做一些工作,该域使用大于 24:00 的时间值来表示午夜之后仍与前一天的详细信息相关的时间。例如,它可能使用星期一的 25:15 来表示星期二的凌晨 1:15,因为从域的角度来看,该值仍然与星期一的数据相关联。

维基百科文章中简要提到了这种类型的时间使用24小时制:

24:00 以后的时间表示法(例如 24:01 或 25:00,而不是 00:01 或 01:00)并不常用,也不包含在相关标准中。然而,它们偶尔会在[各国]的一些特殊情况下使用,这些情况下工作时间会延长到午夜之后,例如广播电视的制作和调度。

Java 提供了LocalTime代表时间的模型类。然而,LocalTime限制为给定日期的午夜(含)和第二天的午夜(不含)之间,即在范围内[0:00-23:59:59.999999999].

Java Time API 的编写非常灵活,但核心 API 中排除了更多专门的概念。正如在三十额外由 Java 8 日期和时间库的主要作者策划的项目:

并非所有日期/时间逻辑都适合 JDK。有些概念太专业或太庞大而无法融入其中。

我没有运气找到现有类型或其他简单的方法来通过核心 Java 库或三十额外。然而,我很可能遗漏了一些东西,也许是一些相当明显的东西。

我如何在 Java 中模拟这种不受约束的时间,最好使用java.timeAPI 或其扩展(ThreeTen-Extra 项目)?我希望能够使用它以文本方式表示时间值(“25:15”),并理想地用它执行时间计算(例如,将“Monday @ 25:15”转换为“Tuesday @ 1:15 AM”)。

如果没有直接的方法,我可能最终会在 Threeten-Extra 项目中提出一个问题。


我的第一个想法是将其存储为Duration目的。您可以轻松地使用该类上的 getter 来构造HH:mm当您想要显示值时使用字符串,或者使用 Apache Commons 之类的东西持续时间格式实用程序.

The LocalDate and LocalDateTime类支持添加和减去持续时间等操作。

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

如何在 Java 中表示和操作大于 24:00 的时间值? 的相关文章

随机推荐

  • 内核栈和用户空间栈

    内核堆栈和用户堆栈有什么区别 为什么使用内核栈 如果在 ISR 中声明局部变量 它将存储在哪里 每个进程都有自己的内核堆栈吗 那么进程如何在这两个堆栈之间进行协调呢 内核堆栈和用户堆栈有什么区别 简而言之 除了使用内存中的不同位置 因此堆栈
  • Java 资源管理:了解 Findbugs 结果

    Findbugs 给我带来了一个打开两个Closeable实例 但我不明白为什么 Source public static void sourceXmlToBeautifiedXml File input File output throw
  • SKTexture:加载图像资源时出错

    这似乎工作得很好 当我创建一个具有完全相同的内容 只是新图像 的新项目时 它不起作用 我什至尝试过 var mainChartxt SKTexture imageNamed mainC png 它仍然给我同样的错误 SKTexture Er
  • Ubuntu 18.04 中 Python 3 环境中的 PyFMI

    我的目标是能够在 Ubuntu 18 04 中运行 OpenModelica 生成的 FMU 然后在 Python 3 环境中使用 PyFMI 运行它们 我按照此处的 PyFMI 安装大纲进行操作https jmodelica org py
  • 如何将 JavaFX 进度条绑定到存储在对象中的双精度值

    我还在学习中 希望你能帮助我 我有一个对象myObject存储一个双精度值 表示计算进度的百分比 当myObject初始化时 值为0D 并且经常在myObject本身内部更新 直到达到100D 我想bind这个双值到ajavaFX进度条 这
  • Samsung Galaxy S4(1080X1920) 的 AVD 显示黑屏

    经过大量搜索后 我发现了这个链接 http developer sonymobile com knowledge base sdks sony add on sdk install the sony add on sdk 按照说明的步骤 我
  • NumPy:同时计算许多小矩阵的点积

    我有一长串 3 3 矩阵 例如 import numpy as np A np random rand 25 3 3 对于每个小矩阵 我想执行一个外积dot a a T 列表理解 import numpy as np B np array
  • Z3 结果的随机性

    我正在使用 Z3 Python 接口作为我正在编写的研究工具的一部分 当我在同一查询上重复运行 Z3 求解器时 我注意到一些非常奇怪的行为 特别是 我似乎每次都不会得到相同的结果 即使我在运行之前明确重置了求解器 作为参考 这是我的代码 i
  • 如何使用 ggmap 获得宽屏分辨率

    我有一个这样的数据 YEAR STORM DATETIME NORTH WEST PRESSURE WIND SPEED TRACKDATE 2011 arlene 6 28 2011 6 00 19 9 92 8 1007 30 NA 6
  • C# 中的时区转换

    我有一个日期格式 类似于 2009 年 8 月 11 日星期一 13 15 10 GMT 如何将其转换为 EST 格式 这个或类似的应该可以解决问题 var dateString Tue 11 Aug 2009 13 15 10 GMT v
  • 如何将 XML 元素组转换为 JSON 列表?

    是否可以应用仅匹配唯一属性的模板
  • Jquery 日期选择器:选择一个日期,自动更新第二个字段

    我正在使用 Kelvin Luck 的 jQuery 日期选择器插件 http www kelvinluck com assets jquery datePicker v2 demo 并且需要执行以下操作 也许有人可以帮助我 在旅行保险网站
  • Android中如何设置第一个Seekbar过程值是为第二个Seekbar分配初始值?

    我有两个搜索栏 我想设置第一个Seekbar的过程值是为第二个Seekbar分配初始值 我的确切要求是 我希望用三个搜索栏覆盖 0 到 100 例如 如果 FirstSeekBar 覆盖 1 到 30 则第二个搜索栏自动启动 30 到 10
  • R重复序列每次重复加1

    我的 R 类作业簿有一个问题 我无法解决 我需要 编写一个使用rep 创建一个包含元素1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7的向量的R命令 它似乎是一个 1 到 4 的重复序列 重复 4 次 并且每次重复时向起始元素
  • Mac 上禁用 Chrome 开发者工具

    我知道有关如何启用 Chrome 开发人员工具的问题过去已经得到解答 但它们适用于 Windows 我使用的是 Mac 开发人员工具呈灰色 检查元素也是如此 如何在我的 Mac 上重新启用它们 解决方案 1 重置 Chrome 的标志 On
  • 如何在 Xcode 中重命名项目?

    我有一个用 Objective C 编写的已完成的应用程序 我想重命名该文件 我怎么做 最新版本的 Xcode 在 项目 菜单中有一个 重命名 项
  • UIImageView.animationImages之后如何清除内存?

    我创建了一个新的 Xcode 项目 其中仅包含以下内容 从 png 创建 UIImage 数组的代码拖入项目 在将图像附加到数组时 我尝试了 UIImage named 和 UIImage contentsOfFile 一个 UIImage
  • 为什么即使结果定义为浮点数,结果输出也是整数?

    include
  • 在 Ada 中创建子类型而不指定范围有什么意义?

    在Ada中 我经常看到这样的东西 type Number is new Integer 这有什么意义呢 难道你就不能快乐吗 Integer 我还看到过这样的代码 type Small Number is range 1 5 这对我来说是有道
  • 如何在 Java 中表示和操作大于 24:00 的时间值?

    我目前正在一个应用程序域中做一些工作 该域使用大于 24 00 的时间值来表示午夜之后仍与前一天的详细信息相关的时间 例如 它可能使用星期一的 25 15 来表示星期二的凌晨 1 15 因为从域的角度来看 该值仍然与星期一的数据相关联 维基