代码之家  ›  专栏  ›  技术社区  ›  Adam Matan

ISO-8601 UTC和Unix时间戳之间是否存在一对一和对一关系?

  •  0
  • Adam Matan  · 技术社区  · 6 年前

    时间格式

    时间点通常表示为 Unix Time 或作为人类可读的 ISO 8601 date in UTC 时间字符串。

    例如:

    Unix时间

    从epoch开始的秒数,或unix时间戳,以秒或毫秒为单位:

    1529325705年

    1529325705000元

    ISO 8601日期

    2018年6月18日15:41:45+00:00

    我的问题

    这两者之间有一对一的关系吗?换言之,是否存在一个时间点,一种格式的单一表示,另一种格式的多个表示,或零个表示?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Tomas Aschan    6 年前

    是的,有可能找到这样的约会。从有关Unix时间的wiki文章中:

    这意味着闰秒本身不能用Unix时间表示。

    2016-12-31T23:59:60+00:00

    实际上,这对您来说可能不是问题;自1972年引入以来,只有27个闰秒。


    "2016-12-31T23:59:60+00:00" System.DateTime .NET中的类抛出了一个异常,同时也可以想象,图书馆将返回2017-01-01 00:00:00。

        2
  •  0
  •   jainilvachhani    6 年前

    Unix TimeStamp

    也应该指出,这一点在技术上并没有改变

        3
  •  0
  •   Anonymous    6 年前

    不。两者之间有很好的对应关系,但关系是1对多,严格来说,对于给定的ISO日期时间字符串,甚至可能不存在精确的Unix毫秒。一些问题是:

        • 2018年6月19日04:06:00.00Z
      • Z +00:00 +00 +0000