可能重复:
在 iPhone 中将多种日期格式转换为单一格式
我正在尝试解析 RSS 并从 RSS 的内容部分提取日期的 NSString,并将其转换为 NSDate。这是我到目前为止所拥有的:
RSS 内容总是将时间列为时间:日期/时间到结束时间。我首先扫描 RSS 中的每个项目,以获取介于 When: 和 'to' 部分之间的内容。然后我设置了一个 NSDateFormatter。这就是问题所在。有时它被列为 2013 年 9 月 6 日星期四下午 1:00,但在其他时候,使用的格式是 2013 年 9 月 6 日星期四下午 1 点。所以......我需要解决的问题是设置一些东西,以便无论日期的格式如何,它都能够返回一些东西,因为现在使用“EEE MMM dd, yyyy h:mma”会忽略其中的实例饲料只是说下午1点。
NSMutableArray *substrings = [NSMutableArray new];
NSScanner *scanner = [NSScanner scannerWithString:articleImage];
[scanner scanUpToString:@"When: " intoString:nil]; // Scan all characters before #
NSString *substring = nil;
[scanner scanString:@"When: " intoString:nil]; // Scan the # character
if([scanner scanUpToString:@" to" intoString:&substring]) {
// If the space immediately followed the #, this will be skipped
//[substrings addObject:substring];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"EEE MMM dd, yyyy h:mma"];
NSDate *dateFromString = [[NSDate alloc] init];
// voila!
dateFromString = [dateFormatter dateFromString:substring];
self.thetruedate = dateFromString;
[dateFormatter release];
NSLog(@"%@",dateFromString);
[substrings release];
}