Busco a una solución totalmente funcional, que funciona con:Cómo convertir adecuadamente la cabecera Last-Modified de una respuesta HTTP a un NSDate en IOS
- cualquier localidad iOS o la zona horaria
- cualquier la mayoría de los servidores HTTP/
- Xcode 4.0.2 (see why)
código roto actual:
NSString lastModifiedString = @"Mon, 06 Jun 2011 12:47:05 GMT";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
//df.dateFormat = @"EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'";
df.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss z";
df.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];
df.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDate date = [df dateFromString:lastModifiedString];
que supone que Last-Modified
se supone que utilizar el mismo formato como otros campos de fecha en las especificaciones HTTP, lo que significa utilizar el RFC-1123/RFC-822
Recursos:
- http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html HTTP 1.1
- http://developer.apple.com/library/ios/#qa/qa1480/_index.html
@karim esto fue hace mucho tiempo y se resolvió (no recuerdo exactamente cómo) pero no veo el punto en su comentario. – sorin
Gracias por la solución. Me ayuda. Solo estaba comparando con el encabezado "Last-Modified" y la cadena del formateador de fecha (pegando el encabezado aquí). – karim