0

我正在尝试解决一个非常奇怪的问题。在我的应用程序中,我使用 NSXMLParser 来解析提要。我也有一个要解析的 pubDate 标记。

我有许多不同的日期格式可以解析为 NSDate,其中大部分我都能解析。但其中 1 个我有问题:

<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

所以日期不会显示。有人有想法么?

4

0 回答 0