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"];
¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top