如何正确地将HTTP响应中的Last-Modified标头转换为iOS上的NSDate
我正在寻找一个完全可行的解决scheme,一个适用于:
- 任何iOS语言环境或时区
- 任何/大多数HTTP服务器
- Xcode 4.0.2 (看看为什么)
当前破码:
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];
我认为Last-Modified
应该使用与HTTP规范中的其他date字段相同的格式,即使用RFC-1123 / RFC-822
资源:
- http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html HTTP 1.1
- http://developer.apple.com/library/ios/#qa/qa1480/_index.html
唯一错误的是,你在NSString
和lastModifiedString
之间以及NSDate
和date
之间缺less星号。 一旦你把这些,这个代码为我工作。