如何在java.time中处理整个期间?

如何在java.time中处理整个期间?,第1张

如何在java.time中处理整个期间?
org.threeten.extra.PeriodDuration

ThreeTen-EXTRA
项目提供一类组合

Period
Duration
。简单地叫
PeriodDuration

ISO-8601日历系统中的时间量,其中包含时间段和持续时间

此类根据时间段和持续时间来建模时间量或时间量。期限是基于日期的时间量,包括年,月和日。持续时间是基于时间的时间量,由秒和纳秒组成。有关更多详细信息,请参见Period和Duration类。

时段中的日期考虑了夏令时更改(23或25小时制)。执行计算时,先添加期间,然后添加持续时间。

警告:请务必阅读odaStephen的答案,以了解尝试合并

Period
和所涉及的问题
Duration
。在实践中这样做是没有意义的,尽管这与我们的直觉相反。

在Java SE 8中,应用程序负责创建类链接

Period
,Duration如果需要的话。

请注意,a

Duration
包含秒数,而不是秒,分钟和小时。秒数可能超过24小时,因此aDuration可以代表“天”。但这是每天24小时固定的时间。相比之下,“ day in”的表示
Period
是描述性的,并考虑了DST。a的状态Period由三个独立的字段-天,月和年形成。

请记住,“客户在酒店房间呆了2天17个半小时,

P2DT17H30M”
可能会因DST转换而变得复杂。分别使用
Period
Duration
清除情况很明确
-Period
受DST转换的影响,但
Duration
不是。

在设计方面,原始的java.timePeriod确实包括小时,分钟和秒。但是,这导致需要许多方法和复杂的Javadoc来描述围绕规范化和DST的所有可能性。通过分离概念,每个概念与时间轴之间的交互更加清晰。请注意,这两个类也与SQL设计有关(“年月”和“日秒”概念)。

目前尚无计划在该区域为Java SE 9添加新类,但是由于XML /ISO-8601允许使用单个组合表示形式,因此不能完全排除它。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存