T和Z在时间戳中到底意味着什么?


98

我有这个时间戳值由Web服务返回 "2014-09-12T19:34:29Z"

我知道这意味着时区,但是那到底是什么意思呢?

而且我正在尝试模拟此Web服务,因此有没有办法strftime在python中使用生成此时间戳的方法?

很抱歉,如果这很明显,但Google的帮助不是很大,strftime()参考页面也没有。

我目前正在使用这个:

x.strftime("%Y-%m-%dT%H:%M:%S%Z")
'2015-03-26T10:58:51'

Answers:


127

T并没有真正纳入什么。这仅仅是分隔ISO 8601相结合的日期时间格式要求。您可以将其阅读为Time的缩写。

Z代表的时区,因为它是由0从偏移协调世界时(UTC)

这两个字符都是格式上的静态字母,这就是为什么该datetime.strftime()方法未记录它们的原因。您可以使用QM或,Monty Python而该方法也可以将它们返回不变;该方法仅查找以开头的模式,%将其替换为来自datetime对象的信息。


9
Z实际上代表祖鲁语,这是UTC0的“名字”。听起来很奇怪,但是每个时区都有各自的名称。
TomCho

19
@TomCho:不,Zulu是的北约拼音字母名称Z,因为时区零时区,所以使用它。请参阅答案中包含的Wikipedia链接:UTC时间也称为“ Zulu”时间,因为“ Zulu”是ICAO拼写“ Z”的字母代码字。
马丁·彼得斯

5
@TomCho:看起来TimeAndDate倒向了;我会说Z来之前Zuluen.wikipedia.org/wiki/List_of_military_time_zones很有趣,但没有提供任何历史依据来说明将Z用作零偏移时区,Z因此仅将其命名为Zulu
马丁·彼得斯

1
+1正确,我同意你的看法。他们J在军事区不使用这封信很奇怪。也许是因为德语或芬兰语等成语中的发音不同?无论如何,感谢您清理事物。
TomCho

4
@TomCho: 自1950年代(甚至在UTC出现之前Z用于+0000(当时的GMT)。据我了解,Z这只是一个字母(您可以使用助记符 Zero和/或将其发音为Zulu(从广泛使用的拼写字母中得出))
jfs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.