NSdateFormatter - 奇怪的问题

时间:2013-04-17 15:13:22

标签: iphone ios xcode nsdate nsdateformatter

我正试图解决一个非常奇怪的问题。在我的应用程序中,我使用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

因此日期不会显示。有人有什么想法吗?

0 个答案:

没有答案