2011-06-06 19 views
14

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:

+0

@karim esto fue hace mucho tiempo y se resolvió (no recuerdo exactamente cómo) pero no veo el punto en su comentario. – sorin

+0

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

Respuesta

6

lo único malo es que está asteriscos falta en el medio y NSStringlastModifiedString, y también entre NSDate y date. Una vez que los ingreses, este código funciona para mí.

Cuestiones relacionadas