如何阅读时间戳?

问题描述 投票:6回答:2

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

我有一个时间戳:

 2017-02-03T06:16:59.094-08:00

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小时的时区记录的?

time timestamp
2个回答
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"时间的偏移量。


0
投票

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

下面是它的工作原理:

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

以下时间均指同一时刻:“18:30Z”,“22:30 + 04”,“1130-0700”和“15:00-03:30”。除Z外,不使用航海时区字母。要计算UTC时间,必须从当地时间减去偏移量,例如:对于“15:00-03:30”做15:00 - ( - 03:30)到18:30 UTC。

除了具有特殊表示“Z”之外,偏移量零也可以用数字表示为“+00:00”,“+ 0000”或“+00”。但是,不允许用带负号的数字表示它,如“-00:00”,“ - 0000”或“-00”。指示标志使用的部分(2004年版标准中的第3.4.2节)规定,加号必须用于正值或零值,负号必须用于负值。与此规则相反,RFC 3339(否则是ISO 8601的配置文件)允许使用“-00”,其标注与“+00”相同,但含义不同。[29]

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

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

© www.soinside.com 2019 - 2024. All rights reserved.