Especifique el desplazamiento de time con un NSDateFormatter (-0500)

Tengo algunas cadenas de date similares a estas:

2013-01-25 00:00:00 -0500 2013-01-22 00:00:00 -0700 2013-01-26 00:00:00 -0200 

Quiero usar un NSDateFormatter para crear un NSDate utilizando este tipo de cadenas. Sé cómo usar un formateador para get la primera parte de la date ( 2013-01-25 00:00:00 ), pero no sé cómo especificar la parte de desplazamiento ( -0200 , -0200 , etc.). Aquí está el código para get el inicio de la cadena de date:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss"]; NSString *dateString = @"2013-01-25 00:00:00"; // <-------- Truncated ---- NSDate *date = [dateFormatter dateFromString:dateString]; NSLog(@"Date: %@", date); 

¿Cómo puedo hacer que funcione con la parte -0500 ? Intenté SSSZ , pero no funcionó (dio una date null ).

Prueba esto:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss ZZZ"]; NSString *dateString = @"2013-01-25 00:00:00 -0500"; NSDate *date = [dateFormatter dateFromString:dateString]; NSLog(@"Date: %@", date); 

Yo obtengo:

Fecha: 2013-01-25 05:00:00 +0000

Como nota al margen, aquí está el estándar para todos los formattings de date: http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns