Получение даты из массива с помощью NSDateFormatter - PullRequest
0 голосов
/ 09 ноября 2011

Я читаю в файле строк.Каждая строка выглядит примерно так:

! AIVDO, 1,1,, B, 11b4N? HPs0KLrBDIStg; q? W22 <06,0 * 5A, 21.10.10 2011 12:01:13 PM </p>

То, что я до сих пор делал, это:

        NSArray *arrayFromString = [theString componentsSeparatedByString:@","];
        NSString *dateString = [tempArrayFromAISString objectAtIndex:7];
//            dateString = @"21/10/2011 12:01:13 PM";

        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

        [dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"];
        NSDate *date = [dateFormat dateFromString:dateString];

Возвращает NSDate of (null).

Строка установлена ​​в порядке, потому что, когда я выводю ее с помощью NSLog, она выглядит хорошо.

Форматер даты в порядке, потому что, если я раскомментирую закомментированную строку и сам установлю строку даты, это сработает.

Есть идеи, почему не работает строка из массива?

Заранее благодарен за любую помощь.

Ответы [ 3 ]

1 голос
/ 09 ноября 2011

Изменить на

[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm:ss a"];
0 голосов
/ 13 ноября 2011

В конце был символ новой строки, потому что я читал из файла. Я исправил это с помощью:

dateString = [dateString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

Это избавляет от символа конца строки.

0 голосов
/ 09 ноября 2011

Ваш пример содержит опечатку. arrayFromStringtempArrayFromAISString

Это работает для меня

NSString *theString = @"!AIVDO,1,1,,B,11b4N?HPs0KLrBDIStg;q?w22<06,0*5A,21/10/2011 12:01:13 PM";
NSArray *arrayFromString = [theString componentsSeparatedByString:@","];
NSString *dateString = [arrayFromString objectAtIndex:7];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

[dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateString];
NSLog(@"%@", date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...