ios utc gmt nstimezone

ios - NSTimeZone: ¿Hay alguna diferencia entre “UTC” y “GMT”?



(3)

De acuerdo con los documentos , CFTimeZone (y por extensión, NSTimeZone ) usa nombres de zonas horarias, abreviaturas GMT e información de horario de verano de la base de datos TZ (o "Olsen") .

Al observar la fuente , verá que, aunque semánticamente, "GMT" y "UTC" son bastante distintos, en la práctica no son diferentes: "GMT" es solo una zona horaria de compensación cero.

Actualización : Si bien esta respuesta sigue siendo válida para fechas posteriores al 9 de abril de 1968, cuando se trata de fechas históricas, parece que Cocoa usa definiciones anteriores de GMT que eran válidas en la fecha en cuestión (en lugar de la definición moderna). Esto significa que GMT y UTC podrían diferir para las fechas anteriores al 9 de abril de 1968. Vea el final de esta publicación informativa del blog para una exposición detallada.

¿Son estas cinco afirmaciones intercambiables, o alguien está al tanto de los casos en que su uso arrojaría resultados diferentes? De lo que deduzco son equivalentes, pero no he encontrado nada concluyente, y me preocupan las posibles diferencias entre las variantes GMT y UTC.

[NSTimeZone timeZoneWithName:@"GMT"]; [NSTimeZone timeZoneWithName:@"UTC"]; [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; [NSTimeZone timeZoneForSecondsFromGMT:0];


GMT en casi todos los casos significa UTC.
Pero hoy es la palabra incorrecta para lo que debe ser.
Unfortunatley Apple usa el término GMT, mientras que debería usar UTC.

GMT ya no existe en el sentido de UTC (desde 1928), pero desafortunadamente en el Reino Unido y en África, este término todavía se usa para indicar la hora de Europa occidental o la hora de verano de Europa occidental. El verdadero GMT de hoy se llama UT y puede diferir del UTC en hasta 0,9 s.

(El artículo sobre wiki no existe en inglés, pero en muchos otros idiomas - interesante: enlace alemán ).

Sin embargo, en algunos programas de computadora (encabezado de correo), por razones históricas (Unix) todavía se llama GMT (en el sentido de UTC)


El artículo NSDateFormatter y las fechas de Internet de Apple utiliza [NSTimeZone timeZoneForSecondsFromGMT:0] :

static NSDateFormatter * sRFC3339DateFormatter; NSString * userVisibleDateTimeString; NSDate * date; // If the date formatters aren''t already set up, do that now and cache them // for subsequence reuse. if (sRFC3339DateFormatter == nil) { NSLocale * enUSPOSIXLocale; sRFC3339DateFormatter = [[NSDateFormatter alloc] init]; enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; [sRFC3339DateFormatter setLocale:enUSPOSIXLocale]; [sRFC3339DateFormatter setDateFormat:@"yyyy''-''MM''-''dd''T''HH'':''mm'':''ss''Z''"]; [sRFC3339DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; }