Я занимаюсь разработкой приложения для iPhone, в котором мне нужно преобразовать дату из XML-канала в формат HH: MM.
У меня есть следующий метод, который не работает, и я понятия не имею, что я делаю неправильно.
Например, строка timeToConvert будет выглядеть так: « Пн, 01.02.2010 21:55:00 + 0100 » (без кавычек)
Этот метод работает, когда для региона задано значение США (я получаю верную дату), но не когда я изменяю регион (в Настройки-> Общие-> Международные) на Испанию или другие регионы (в этом случае вернись ноль).
- (id)timeConvertToHHMM:(NSString *)timeToConvert {
NSString *newPubDate = timeToConvert;
//Let's remove any rubbish from the code
newPubDate = [newPubDate stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//create formatter and format to convert the XML string to an NSDate
NSDateFormatter *originalDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[originalDateFormatter setDateFormat:@"EEE, d MMM yyyy H:mm:ss z"];
//run the string through the formatter
NSDate *formattedDate = [[NSDate alloc] init];
formattedDate = [originalDateFormatter dateFromString:newPubDate];
//Let's now create another formatter to take the NSDate and convert format it to Hours and minutes
NSDateFormatter *newDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[newDateFormatter setDateFormat:@"HH:mm"]; // 24H clock set
// And let's convert it back to a readable string
NSString *calcHHMM = [newDateFormatter stringFromDate:formattedDate];
NSLog(@"CalcHHMM: %@", calcHHMM);
return calcHHMM;
}
Любой намек на то, почему это не работает, и просто возвращение NULL будет более чем приветствоваться.