我正试图解决一个非常奇怪的问题。在我的应用程序中,我使用NSXMLParser来解析提要。 我也有一个pubDate标记来解析。
我有许多不同的日期格式要解析为NSDate,其中大多数我都能够解析。其中有一个我有问题:
<pubDate>2013-04-17T12:22:00.0</pubDate>
这是我的日期格式代码:
NSArray *dateFormats = @[@"yyyy-MM-dd'T'HH:mm:ss.S",
@"EEE, dd MMM yyyy HH:mm Z",
@"EEE, dd MMM yyyy HH:mm:ss Z",
@"dd/MM/yyyy HH:mm:ss",
@"EEE, dd MMM yyyy HH:mm:ss",@"EEE,dd MMM yyyy HH:mm:ss Z"];
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc]init];
assert(inputFormatter != nil);
NSLocale *loacle = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US_POSIX"];
assert(loacle != nil);
[inputFormatter setLocale:loacle];
NSString *dateString = [NSString stringWithFormat:@"%@",currentPubDate];
NSLog(@"%@",dateString);
NSDate *inputDate = nil;
for (NSString *dateFormat in dateFormats) {
[inputFormatter setDateFormat:dateFormat];
inputDate = [inputFormatter dateFromString:dateString];
if (inputDate) {
break;
}
}
NSLocale *hebrow = [[NSLocale alloc]initWithLocaleIdentifier:@"he_IL"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc]init];
outputFormatter.locale = hebrow;
[outputFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:3600*2]];
[outputFormatter setDateStyle:NSDateFormatterFullStyle];
[outputFormatter setTimeStyle:NSTimeZoneNameStyleShortStandard];
NSString *outputDate = [outputFormatter stringFromDate:inputDate];
当我调试时,我可以看到dateString
有一个发布日期,但最后有\n
。
它看起来像@"2013-04-17T12:22:00.0\n"
。
但是NSLog(@"%@",dateString);
我得到了这个:
2013-04-17 18:10:37.769 AppName[11651:f803] 2013-04-17T17:56:58.0
2013-04-17 18:10:47.674 AppName[11651:f803] 2013-04-17T17:17:28.0
2013-04-17 18:10:49.990 AppName[11651:f803] 2013-04-17T16:27:36.0
因此日期不会显示。有人有什么想法吗?