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