如何阅读时间戳?

Ric*_*ard 6 time timestamp

这是一个令人难以置信的愚蠢问题,但我很难理解.

我有一个时间戳:

 2017-02-03T06:16:59.094-08:00
Run Code Online (Sandbox Code Playgroud)

UTC时间戳是几点?是不是2017-02-03 14:16:59.094还是 2017-02-02 06:16:59.094

换句话说,-08:00最后是否意味着这是一个本地时间戳,并且时区比UTC晚8小时?(2017-02-03 14:16:59.094)

或者它只是意味着时间戳是UTC,但它是在比UTC晚8小时的时区记录的?

小智 7

如果您想要 UTC 时间,则添加 8 小时。您看到的时间是当地时间。

\n\n

下面是它的工作原理:

\n\n
\n

与 UTC 的时间偏移量 与 UTC 的偏移量以与上面的 \'Z\' 相同的方式附加到\n 时间中,格式为 \xc2\xb1[hh]:[mm], \xc2\xb1[hh] [mm],或\n \xc2\xb1[hh]。因此,如果所描述的时间比 UTC 早一小时,例如冬季柏林的时间,则时区指示符将是“+01:00”、“+0100”或简单的“+01” 。为了表示落后于 UTC 的时间,偏移量为负数。例如,纽约的标准时间(非夏令时)\n 时间为 UTC\xe2\x88\x9205:00,区域指示符\n 将为“\xe2\x88\x9205:00”、“\ xe2\x88\x920500”,或简称为“\xe2\x88\x9205”。对于其他时间偏移,请参阅\n UTC 时间偏移列表。为了表示负偏移量,ISO 8601\n 指定使用连字符\xe2\x80\x93minus 或减号字符。如果交换字符集受到限制并且没有减号字符,则应使用连字符\xe2\x80\x93minus。ASCII 没有减号,因此将使用其连字符\xe2\x80\x93minus 字符(代码为十进制 45\n 或 2D 十六进制)。如果字符集有减号\n,则应使用该字符。Unicode有一个减号,\n其字符代码为U+2212(2212十六进制);HTML\n 字符实体调用是 -。

\n\n

以下时间均指同一时刻:“18:30Z”、\n“22:30+04”、“1130\xe2\x88\x920700”和“15:00\xe2\x88\x9203:30” 。除 Z 外,不使用航海时区字母\n。要计算 UTC 时间,必须\n 从本地时间中减去偏移量,例如,对于“15:00\xe2\x88\x9203:30”,执行\n 15:00 \xe2\x88\x92 (\xe2\x88\x9203:30) 获取 18:30 UTC。

\n\n

零偏移量除了具有特殊表示\n“Z”之外,还可以用数字表示为“+00:00”、“+0000”或“+00”。\n但是,这是不允许的用负号以数字形式表示,如“\xe2\x88\x9200:00”、“\xe2\x88\x920000”或“\xe2\x88\x9200”。规定符号用法的部分(2004 年版标准中的第 3.4.2 节)规定,正值或零值必须使用加号,负值必须使用减号。与此规则相反,RFC 3339(ISO 8601 的一个配置文件)允许使用“-00”,其表示法与“+00”相同,但含义不同。[29]

\n\n

当字符集有限时,ISO 8601 允许将连字符 (-) 用作减号 (\xe2\x88\x92) 字符\n。[30] 相比之下,RFC 3339\n 明确要求使用连字符 (-) 来表示负\n 偏移量,并且不允许使用减号 (\xe2\x88\x92) 符号。[31]

\n
\n\n

https://en.wikipedia.org/wiki/ISO_8601

\n


Tay*_*ood 1

该时间戳有一个时区偏移量,可以告诉您现在是什么时间以及UTC 偏移量。如果没有偏移,它就变成了2017-02-03T14:16:59.094-00:00

换句话说,末尾的 -08:00 是否意味着这是本地时间戳并且时区比 UTC 晚 8 小时?(2017-02-03 14:16:59.094)

或者它只是意味着时间戳是 UTC,但它是在比 UTC 晚 8 小时的时区记录的?

在某种程度上,两者都是。我认为对于 UTC 时间戳的构成存在误解。每个 UTC 时间戳都带有与“zulu”时间的偏移量。