gpt4 book ai didi

java-8 - java.time.temporal.ChronoUnit VS java.time.temporal.ChronoField

转载 作者:行者123 更新时间:2023-12-04 09:45:46 24 4
gpt4 key购买 nike

在查看 java 8 Time API 时,我看到很多方法都期望作为参数 ChronoUnit (TemporalUnit 的实现)为 here而其他人则期望 ChronoField (TemporalField 的实现)为 here .

当一种方法期望使用 ChronoUnit 以及何时使用 ChronoField 时,任何人都可以帮助我澄清设计师的决定,它们有什么区别?

谢谢。

最佳答案

单位用于衡量时间的数量——年、月、日、小时、分钟、秒。例如,第二个是 SI unit .

相比之下,字段是人类通常指代时间的方式,它是部分的。如果你看一个数字时钟,秒数从 0 到 59,然后又回到 0。这是一个字段 - 在这种情况下为“秒的分钟”,通过计算一分钟内的秒数形成。同样,天数在一个月内,月数在一年内。要在时间线上定义一个完整的点,您必须有一组链接字段,例如:

  • 分钟
  • 一天中的小时
  • 日期
  • 每月
  • 年(永远的)
  • ChronoField API 公开了 second-of-minute 的两个部分。使用 getBaseUnit()得到“秒”和 getRangeUnit()获得“分钟”。
    Chrono名称的一部分是指定义是时间中立的事实。具体来说,这意味着该单位或字段仅在与日历系统相关联时才有意义,或 Chronology .这方面的一个例子是科普特年表,一年有 13 个月。尽管这与常见的 Civil/ISO 日历系统不同,但 ChronoField.MONTH_OF_YEAR常量仍然可以使用。
    TemporalUnitTemporalField接口(interface)提供了更高级别的抽象,允许添加和处理与时间无关的单元/字段。

    关于java-8 - java.time.temporal.ChronoUnit VS java.time.temporal.ChronoField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571974/

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