当前位置: 首页 > 面试题库 >

Joda-Time:Period,Interval和Duration有什么区别?

白通
2023-03-14
问题内容

在Joda-Time 2中,三种时间跨度之间有什么区别:

  • 间隔
  • 持续时间

    1. 为什么我们需要三堂课?

    2. 哪一个表现更好?

    3. 为什么不实现对Period,Duration或Interval实例的 划分 ?例如p = p.divideBy(2);


问题答案:

需要3个类,因为它们表示不同的概念,因此,选择适合工作的类而不是相对性能是一个问题。从文档中,我用 斜体 添加了注释:

间隔 在约达时间表示时间从一个毫秒时刻到另一时刻的间隔。这两个时刻都是日期时间连续体中完全指定的时刻,并带有时区。
定义了特定时间,例如,这可能是昨天20:00:00GMT和今天早上09:00:00GMT之间的时间间隔。

持续时间 在约达时间表示以毫秒计的时间的持续时间。持续时间通常是从一个间隔中获得的。 即我们可以从间隔结束处减去开始以得出持续时间

期间
在约达时间表示一段时间中的字段来定义,例如,3年5月2天及7小时。这与持续时间的不同之处在于,它以毫秒为单位不精确。通过指定相对的瞬间(包括时间和时区),只能将一个时期解析为精确的毫秒数。
例如,考虑一年的期限,如果将其添加到1月1日,我们将始终到达下一个1月1日,但是持续时间取决于中间年份是否为a年。
同样,如果我们在一个月的1号加上1个月,那么我们将在下个月的1号到达,但是持续时间(以毫秒为单位)将根据相关月份而有所不同


对于问题3,确实没有必要使用特定的方法来划分持续时间,因为我们总是可以从持续时间中获取毫秒数long(使用getMillis()),对其进行划分并构造新的持续时间(使用new Duration(long duration))。

根据上述期间的定义,划分期间实际上并没有真正的意义。例如,半个月是什么?(其长度取决于哪个月)。



 类似资料:
  • 问题内容: 我有一个表格来说明事件的持续时间。说,活动将持续15分钟。因此该字段将具有以下值:00:15如果要持续1小时:01:00,依此类推。 如何创建带有字符串“ HH:MM” 的Joda时间 持续时间对象? 在Joda-Time主页上,它提到可以分别使用ConverterManager和DurationConverter从指定对象创建Duration对象。 我的问题是,如何实现上述接口,以便

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。

  • 我只是想知道Joda的LocalDate类和java.util的Date类有什么不同。另外,使用其中一个比使用另一个有什么好处吗?

  • 发展至今(2020 年 6 月份),GCC 编译器已经更新至 10.1.0 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ 。 除此之外,当下的 GCC 编译器还支持编译 Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序,甚至于 GCC 6 以及之前的版本还支持编译 Java 程序。但本