重複の可能性:
iPhoneで複数の日付形式を単一の形式に変換する
RSSを解析し、RSSのコンテンツセクションから日付のNSStringを抽出して、NSDateに変換しようとしています。これが私がこれまでに持っているものです:
RSSコンテンツには、常に時刻が「日時:日付/時刻から終了時刻まで」と表示されます。最初にRSSの各項目をスキャンして、When:と'to'の部分の間にあるものを取得します。次に、NSDateFormatterを設定します。ここに問題があります。2013年9月6日木曜日午後1時と表示される場合もありますが、使用される形式は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];
}