Convertir NSDate a NSString con NSDateFormatter con zona horaria sin modificador Hora GMT
-
02-10-2019 - |
Pregunta
Me inicializar mi NSDateFormatter de esta manera:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss z"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
dateString
es ahora:
Thu, 29 Jul 2010 14:58:42 GMT+00:00
quiero para deshacerse de la "00: 00"
supongo de http://unicode.org/reports/tr35 /tr35-6.html#Time_Zone_Fallback que podría tener un problema de localización. Estoy trabajando en torno a este momento quitando el. "00: 00" de forma manual, pero eso no es lo ideal
Editar
He intentado un par de nuevas maneras de crear la NSTimeZone, pero ambos producen el mismo dateString
:
[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
Solución
Eliminar el carácter terminador 'z' de la cadena de formato si no desea mostrar la zona horaria.
Editar
Por otro lado, si lo que desea es visualizar el nombre de zona horaria, simplemente hacer que la mayúscula 'z'. ((Edit: dejar la minúscula 'z' para zona horaria llamado, es decir, PST y mayúsculas 'Z' para -0800))
Editar
Minúsculas 'z' funciona bien para todas las otras zonas horarias, pero desafortunadamente GMT es un caso especial. Así que la cosa más fácil de hacer es simplemente omitir la 'z' y añadir "GMT" a la fecha formateada.
Otros consejos
respuesta aceptada tenía un error tipográfico.
Por otro lado, si lo que desea es visualizar el nombre de zona horaria, simplemente hacer que la mayúscula 'z'.
dejar la minúscula 'z' para zona horaria llamado, es decir, PST y mayúsculas 'Z' para -0,800
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMMM dd, yyyy (EEEE) HH:mm:ss z Z"];
NSDate *now = [NSDate date];
NSString *nsstr = [format stringFromDate:now];
// 23 de enero de, 2013 (Miércoles) 12:33:46 PST -0800