【问题标题】:Is the --MM-DD format for month-day part of ISO 8601?ISO 8601 的月日部分的 --MM-DD 格式是什么?
【发布时间】:2014-09-29 10:53:01
【问题描述】:

Java 8 日期/时间 API java.time 有一个 MonthDay class 来表示一个月和一天。 Joda-Time 库也提供了一个 MonthDay 类。

在 java.time 中,MonthDay.toString() 方法声明为:

以字符串形式输出本月-日,例如 --12-03。

java.time 中的大多数类都有它们的 toString() 方法输出它们所代表的概念的标准 ISO 8601 表示(例如,YYYY-MM-DD 代表 LocalDate),所以我希望这种 --MM-DD 格式也是标准的。

但我在 ISO 8601 标准中找不到这个。

月-日是 ISO 8601 定义的概念吗?如果是,--MM-DD 是标准格式吗?

背景:我正在开发另一种语言的日期/时间 API。

【问题讨论】:

    标签: date datetime iso8601 java-time


    【解决方案1】:

    是的,在第 4.4 段中,ISO 8601:1988 说:

    注意 - 连字符也用于表示省略的组件

    所以--MM-DD 格式符合ISO 8601,其中年份被省略/缺失,第 5.2.1.3d 段也包含该格式的示例。

    这种格式在后来的 ISO 8601 标准版本中消失了。但是,java.time 类与MonthDay 类一起继续支持该格式。

    【讨论】:

    • 虽然我在较早的“ISO 8601:2000(E)”第二版(草稿)中看到了您的第二个引用 (5.2.1.3d),但我没有看到您引用的任何一个后面的“ISO 8601:2004(E)”第三版(草稿)中的部分。在第三版中,似乎没有提到这种截断值。你能准确地引用你引用的标准的版本吗?
    • 完成。它是 ISO 8601 第一版 1988-06-15 版本的一部分
    • 为什么最近版本的标准中没有提到这个?这种格式仍然是最新的吗?
    • ISO-8601 多年来发生了变化。我不知道为什么。如上所述,这是一种有效的格式,并且作为 toString() 仍然有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2013-05-22
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多