NSTimeZone:"UTC"和"GMT"之间有什么区别吗?

Cla*_*fou 37 utc gmt nstimezone ios

这五个陈述是否可以互换,或者是否有人知道其使用会产生不同结果的情况?从我收集的内容来看,它们是等价的,但我没有找到任何结论,GMT和UTC变体之间的潜在差异让我担心.

[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
[NSTimeZone timeZoneForSecondsFromGMT:0];
Run Code Online (Sandbox Code Playgroud)

fol*_*ben 41

根据文档,CFTimeZone(并且通过扩展NSTimeZone),使用来自TZ(或"Olsen")数据库的时区名称,缩写,GMT偏移和DST信息.

看一下这个来源,你会发现虽然语义上"GMT"和"UTC"是截然不同的,但实际上它们并没有什么不同:"GMT"只是一个零偏移时区.

更新:虽然这个答案在1968年4月9日之后的日期仍然适用,但在处理历史日期时,Cocoa似乎使用过去的GMT定义,这些定义在相关日期是有效的(而不是现代定义).这意味着GMT和UTC可能会在1968年4月9日之前的日期有所不同.有关详细说明,请参阅此信息性博客文章的末尾.


Ale*_*ien 7

几乎所有情况下的GMT都意味着UTC.
但是今天它的意思是错误的.
Unfortunatley Apple使用术语GMT,而它应该使用UTC.

格林威治标准时间不再存在于UTC(自1928年以来)的意义上,但在英国和非洲不幸的是,这个术语仍然用于表示西欧时间或西欧夏令时.今天真正的GMT被称为UT,可以与UTC相差最多0.9秒.

(维基上的文章不存在于英语中,但在许多其他语言中 - 有趣的是:德语链接).

但是在某些计算机程序(邮件头)中,由于历史原因(unix),它仍称为GMT(在UTC意义上)