Преобразование NSStrings в массиве в NSDates - PullRequest
2 голосов
/ 05 мая 2011

Я работаю над заданием, которое позволяет пользователю отображать события, происходящие «сегодня».Я проанализировал файл XML и сохранил содержимое в массиве.Содержимое файла XML состоит из заголовка, описания, даты и т. Д. Даты представлены в формате NSString, и я хочу преобразовать их в NSDates и сравнить их с сегодняшней датой, прежде чем отобразить их в UITableView.

IЯ новичок в obj-c, и я искал в Интернете помощь по NSDate, но я не мог найти то, что мне нужно.Любые ссылки, советы или помощь по этому вопросу очень ценятся.Заранее спасибо (:

Ответы [ 4 ]

4 голосов
/ 05 мая 2011

предположим, что dateString содержит дату в строковом формате

первая дата получения из строки: -

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
   [formatter setDateFormat:@"dd/mm/yyyy"];
  NSDate *dateprevious = [formatter dateFromString:dateString];

Теперь получаем дату сегодня

    NSDate *date=[NSDate date]; 
[formatter setDateFormat:@"dd"];
    NSString *dateOfGame =[formatter stringFromDate:dateprevious];
    NSString *todaydate =[formatter stringFromDate:date];
[formatter release];

if([todaydate isEqualToString:dateknown])
{
NSLog(@"date matched");
}
1 голос
/ 05 мая 2011

В зависимости от формата строки, вы можете использовать this :

+ (id)dateWithNaturalLanguageString:(NSString *)string

Для сравнения двух дат вы найдете здесь много полезных ответов:)

1 голос
/ 05 мая 2011
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy , hh:mm a"];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
NSDate *date = [[dateFormatter datefromString:date] retain];
[dateFormatter release];

Вы можете использовать это

0 голосов
/ 05 мая 2011

Посмотрите на NSDateFormatter

У него есть метод с именем dateFromString Как вы могли бы сделать следующее:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/mm/yyyy"];
NSDate *date = [formatter dateFromString:@"5/5/2011"];
...