2014-10-02 2 views
0

У меня есть NSString, который печатает:Как мне получить дату (а не время или любые буквы) из этой NSString?

последнее обновление Последнее обновление: 10/02/2014 03: 22: PM

Я хочу, чтобы получить эту дату только 10/02/2014. Как я буду это делать? Любые предложения или советы приветствуются. Я предполагаю, что мне нужно использовать NSRange, но я не уверен.

NSString *recentUpdate = [defaults stringForKey:@"EGORefreshTableView_LastRefresh"]; 
+0

Тесно, тесно связаны: [Поиск времени даты в NSString, используя регулярное выражение] (http://stackoverflow.com/q/10557035) –

+1

Вы пишете код для разбора строки. Каким образом нужно, чтобы код зависел от любых возможных изменений в строковой структуре. В простейшем случае вы можете просто подстроить из char 24 для длины 10. –

ответ

2

Если день и месяц всегда будет 2-цифры, это быстрое решение:

[recentUpdate substringWithRange:NSMakeRange(28, 10)] 
1

Использовать простой строки синтаксического анализа:

NSArray *stringParts = [recentUpdate componentsSeparatedBy:@" "]; 
NSString *datePortion = stringParts[4]; 

ли надлежащую проверку ошибок упаковывают строки не имеет нужное количество пробелов.

+0

@JoshCaswell Спасибо. Я не заметил, что 'Last updated:' было частью строки. Обновлено. – rmaddy

0

просто попробовать.

NSString *currentString = @"recent update Last Updated: 10/02/2014 03:22:PM"; 

    NSString *tempoString = [currentString substringWithRange:NSMakeRange(0, 39)]; 

    NSArray* stringArray = [tempoString componentsSeparatedByString: @":"]; 
    NSString* date = [stringArray objectAtIndex: 1]; 

    NSLog(@"%@", date); 
+1

Если вы собираетесь указывать диапазон, почему бы просто не указать точный диапазон нужного текста? – rmaddy