【问题标题】:What are the use cases justifying the 310 OffsetDate type?有哪些用例证明 310 OffsetDatetime 是合理的?
【发布时间】:2011-12-08 22:49:30
【问题描述】:

OffsetDate 表示带有区域偏移的日期。我不明白这个类的用途,证明它存在的主要用例是什么?

【问题讨论】:

    标签: java-8 jsr310


    【解决方案1】:

    在分析日期和时间的基本组成部分时,有四个基本要素:

    • 日期
    • 时间
    • 偏移量(格林威治小时加/减)
    • 时区

    这些自然形成七类:

    • Lo​​calDate - 仅日期
    • Lo​​calTime - 仅时间
    • Lo​​calDateTime - 日期 + 时间
    • OffsetDate - 日期 + 偏移量
    • OffsetTime - 时间 + 偏移量
    • OffsetDateTime - 日期 + 时间 + 偏移量
    • ZonedDateTime - 日期 + 时间 + 偏移量 + 区域

    (只有知道日期和时间才能使用时区,因此没有 ZonedDate 或 ZonedTime 类)

    前六种形式直接匹配XML schema 定义,这实际上证明了它们的存在。在应用程序设计方面,我怀疑OffsetDate 将是七个类中使用最少的。

    更新:2013-01-24:OffsetDate won't be inJDK 1.8。

    【讨论】:

    • “这些自然形成七个类”——我觉得不自然。这解释了为什么您添加它但没有回答我关于用例的问题。
    • 用例是 XML 模式需要 Offset* 类,ISO-8601 也解析为 Local* 或 Offset* 类,而不是 ZonedDateTime
    • 今天可能有点困,为什么只有知道日期和时间才能使用时区?例如,1999 年 4 月 23 日在美国/纽约。似乎这是一个具体的时间段,从 1999 年 4 月 23 日 00:00:00 到 1999 年 4 月 23 日 23:59:59 at America/NewYork
    • @borjab 因为OffsetDate 总是 24 小时,ZonedDate 不会。不过两者都不是特别有用。
    • 是的,ZonedDate 本质上是从一个午夜到下一个午夜的时间范围。它将成为 ThreeTen-Extra 的一个很好的补充
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2011-06-02
    • 2015-07-16
    相关资源
    最近更新 更多