gpt4 book ai didi

java - 如何表示和操作大于 24 :00 in Java? 的时间值

转载 作者:行者123 更新时间:2023-12-03 21:08:18 35 4
gpt4 key购买 nike

我目前正在一个应用程序域中做一些工作,该域使用大于 24:00 的时间值来表示午夜后仍与前一天详细信息相关联的时间。例如,它可能使用星期一的 25:15 来表示星期二的上午 1:15,因为从域的角度来看,该值仍然与星期一的数据相关联。
24-hour clock 的维基百科文章中简要提到了这种类型的时间使用。 :

Time-of-day notations beyond 24:00 (such as 24:01 or 25:00 instead of 00:01 or 01:00) are not commonly used and not covered by the relevant standards. However, they have been used occasionally in some special contexts in [various countries] where business hours extend beyond midnight, such as broadcast television production and scheduling.


Java 提供了 LocalTime 模型类来表示时间。然而, LocalTime被限制在给定日期的午夜(包括)和第二天的午夜(不包括)之间,即在 [0:00-23:59:59.999999999] 范围内.
Java Time API 被编写为灵活的,但核心 API 中排除了更专业的概念。如 ThreeTen Extra 中所述由 Java 8 日期和时间库的主要作者策划的项目:

Not every piece of date/time logic is destined for the JDK. Some concepts are too specialized or too bulky to make it in.


我没有找到现有类型或其他直接方法来通过核心 Java 库或 ThreeTen Extra 对这种约束较少的时间类型进行建模。 .然而,我很可能遗漏了一些东西,也许是相当明显的东西。
我如何在 Java 中对这种限制较少的时间进行建模,理想情况下使用 java.time API 或其扩展(如 ThreeTen-Extra 项目)?我希望能够使用它来以文本形式表示时间值(“25:15”),并理想地使用它执行时间计算(例如,将“星期一 @ 25:15”转换为“星期二 @ 1:15 AM”)。
如果没有直接的方法,我可能最终会在 Threeten-Extra 项目中打开一个问题。

最佳答案

我的第一个想法是将其存储为 Duration目的。您可以轻松地使用该类上的 getter 来构造 HH:mm当您想显示值时使用字符串,或使用类似 Apache Commons DurationFormatUtils 的内容.LocalDateLocalDateTime类支持添加和减去持续时间等操作。

关于java - 如何表示和操作大于 24 :00 in Java? 的时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65484152/

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