【问题标题】:Are zero differences to UTC allowed as a timezone indicator in ISO8601ISO8601 中是否允许与 UTC 零差异作为时区指示符
【发布时间】:2018-02-06 16:01:56
【问题描述】:

我的假设是否正确,即 ISO8601 不允许与 UTC 零差异作为时区指标(在本例中为 GMT),但需要使用 Z 指标?

我想获得关于解释的第二意见

如果根据 5.3.1.1 至 5.3.1.3 使用当天的本地时间,则区域指示符为空,如果根据 5.3.3 使用 UTC,则为 UTC 指示符 [Z] 和根据5.3.4.2,如果使用本地时间和与UTC的差异,则为差异分量。

因为我担心有人会争辩说,如果我不想标准化时间但想指出这是使用的本地时间,您仍然可以使用5.3.4.2

那么1985-04-12T10:15:30+00:00 是根据 ISO8601 的有效字符串还是只有 1985-04-12T10:15:30Z 有效?

【问题讨论】:

    标签: date datetime time standards iso8601


    【解决方案1】:

    偏移量为零,除了具有特殊表示 “Z”也可以用数字表示为“+00:00”、“+0000”或“+00”。 但是,不允许用否定的数字表示它 符号,如“-00:00”、“-0000”或“-00”。

    我引用了the Wikipedia article on ISO 8601。我不能保证解释是正确的,但至少很清楚。

    如果是我,我可能会采取安全的赌注:总是产生 Z,但允许我接收和解析的内容出现正的零差异。

    【讨论】:

    • 看我的回答+1
    【解决方案2】:

    读完@Ole V.V.答案我看到维基百科指的是更新版本的 ISO 8601。在阅读了 2016 年更新的草案后,我发现:

    4.2.5.1 当地时间与当天 UTC 之间的差异 当需要表示当地时间与当天UTC的差异时,差异的表示可以用小时和分钟表示,也可以只用小时表示。如果当地时间早于或等于当天的 UTC,则应表示为正数(即带前导加号 [+]),如果晚于 UTC,则应表示为负数(即带前导减号 [-])日。

    (ISO/TC 154/WG 5 N0038 ISO/WD 8601-1 2016-02-16)

    显然展位 1985-04-12T10:15:30+00:00 和 1985-04-12T10:15:30Z 有效 但 1985-04-12T10:15:30-00 :00 不是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-16
      • 2020-04-12
      • 2016-08-24
      • 2011-02-16
      • 2015-07-22
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多