时间戳中的 T 和 Z 到底是啥意思?

Posted

技术标签:

【中文标题】时间戳中的 T 和 Z 到底是啥意思?【英文标题】:What exactly does the T and Z mean in timestamp?时间戳中的 T 和 Z 到底是什么意思? 【发布时间】:2015-05-30 16:11:16 【问题描述】:

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

我知道它的意思是时区,但它到底是什么意思?

我正在尝试模拟这个网络服务,那么有没有办法在 python 中使用strftime 生成这个时间戳?

很抱歉,这很明显,但 Google 并没有提供多大帮助,strftime() 参考页面也没有提供帮助。

我目前正在使用这个:

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

【问题讨论】:

【参考方案1】:

T 并不代表任何东西。这只是ISO 8601 combined date-time format 需要的分隔符。您可以将其理解为 Time 的缩写。

Z 代表 时区,因为它从 Coordinated Universal Time (UTC) 偏移了 0。

这两个字符都只是格式中的静态字母,这就是datetime.strftime() 方法没有记录它们的原因。您可以使用 QMMonty Python 并且该方法也会将它们原封不动地返回;该方法仅查找以% 开头的模式,以用来自datetime 对象的信息替换这些模式。

【讨论】:

Z实际上代表Zulu,它是UTC0的“名称”。听起来很奇怪,但每个时区都有各自的名称。 @TomCho: 不,ZuluZ 的北约拼音字母名称,使用它是因为时区时区为零。请参阅我在答案中包含的 Wikipedia 链接:UTC 时间也称为“祖鲁”时间,因为“祖鲁”是国际民航组织“Z”的拼写字母代码字。 @TomCho:看起来 TimeAndDate 倒退了; ZZulu 之前,我想说。 en.wikipedia.org/wiki/List_of_military_time_zones 很有趣,但没有给出 Z 被用于零偏移时区的任何历史理由,只是 Z 因此被命名为 Zulu +1 是的,我同意你的看法。奇怪的是他们不在军事区使用J这个字母。也许是因为德语或芬兰语等成语的发音不同?无论如何,感谢您清理一切。 @TomCho: Z is used for +0000 (GMT at the time) since 1950s(甚至在 UTC 存在之前)。据我了解Z 只是一个字母(您可以使用助记符 Zero 和/或将其发音为Zulu(来自广泛使用的拼写字母)

以上是关于时间戳中的 T 和 Z 到底是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

从时间戳中提取的 Bigquery 失败

没有时区的时间戳中的夏令时时间偏移

从时间戳中提取时间?

T-Sql 中的时间戳在 C# 中是啥意思?

从时间戳中提取时间分辨率以获取列中特定值的最佳方法是啥?

pandas:从时间戳中提取日期和时间