JSR 310:一种新的Java日期/时间API - 编程入门网
ration.durationBetween (ReadableInstant startInclusive, ReadableInstant endExclusive) 工厂方法很有用。
时段 像持续时间一样,时段表示一段已经消逝的时间。时段的示例有“4 年零 8 天”和“1 小时”。如这 些示例所示,时段是使用日历字段(年、日、小时等)定义的,而不是通过确切的纳秒数确定的。 首先,时段和持续时间可能看起来像是表达同一概念的不同方式;但是,正如下面的瞬间/时段加法示 例所演示的那样,无法将给定的时段转换为确切的纳秒数。瞬间/时段加法将时段的每个日历字段的值添 加到瞬间的相应字段。瞬间/持续时间加法与此相反,该加法将持续时间的长度(以纳秒为单位)添加到 瞬间。乍看起来,向给定的瞬间添加 86,400,000,000,000 纳秒(24 小时)持续时间似乎应该与添加“1 天”的时段产生相同的结果,但情况并非总是如此,原因是日历字段“日”不具有固定的纳秒长度。大多 数日都是 24 小时长,但由于存在夏令时,因此某些日要长一些或短一些。向瞬间添加 24 小时持续时间 总是将该瞬间恰好推进 24 小时,而添加一个 1 天的时段总是将日推进 1,同时使每日时间保持不变。 例如,如果将时段“1 日”添加到瞬间“美国东部时间 2008 年 3 月 9 日午夜”,则得到的基于字 段的加法将产生“美国东部时间 2008 年 3 月 10 日午夜”。但是,如果将一个 24 小时的持续时间添 加到瞬间“美国东部时间 2008 年 3 月 9 日午夜”,则结果为“美国东部时间 2008 年 3 月 10 日 01:00:00.0”。两者之间的差别源于:夏令时开始于美国东部时间 2008 年 3 月 9 日 02:00:00;因此 ,该日只有 23 小时长。 JSR 310 通过多个类提供了时段功能,其中最为重要的类是 Period、Periods.Builder 以及 Periods.Builder 的子类:Periods.SecondsBuilder、Periods.MinutesBuilder(它是 SecondsBuilder 的子类)等(一直到 Periods.YearsBuilder)。 要创建 Period 的实例,您必须首先使用静态 Periods.periodBuilder() 方法获取 Periods.Builder 的实例。此方法返回一个 Periods.YearsBuilder 对象,这是 Periods.Builder 的一个间接子类。 Periods.YearsBuilder 类提供了一个方法 years(int numYears),该方法将 numYears 年添加到所生成 的时段。使用 YearsBuilder 的直接和间接超类(MonthsBuilder、DaysBuilder、HoursBuilder、 MinutesBuilder 和 SecondsBuilder)可以将其他日历字段添加到该时段。例如, MinutesBuilder.minutes(int numMinutes) 向所生成的时段添加 numMinutes 分钟。上述所有方法都返 回 this,因而,只需一条语句就可以生成具有多个日历字段的时段。请注意,通过将一个负整数传递到 适当的 builder 方法中,可以对时段执行减法。在将所有需要的字段添加到该时段之后,将调用 Periods.PeriodBuilder.build() 方法以返回 Period 的完整实例。
JSR 310:一种新的Java日期/时间API(5)时间:2011-07-29 Jesse Farnham时间间隔 时间间隔表示时间线上的两个瞬间之间的一段时间。因此,“世 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |