NSString to NSDate для формата мм / дд / гггг чч: мм: сс - PullRequest
3 голосов
/ 05 августа 2011

Получаемая строка даты 8/5/2011 1:38:13 PM этого формата.Как мне преобразовать его в NSDate?

Я пытался:

[dateFormatter setDateFormat:@"mm/dd/yyyy 'T' hh:mm:ss a"];
NSString *currentDate = [dateFormatter stringFromDate:currentDateString];

Возвращает nil.Есть мысли?

1 Ответ

9 голосов
/ 05 августа 2011

Причина, по которой он возвращает nil, заключается в том, что вы вызываете неправильный метод, в вашей строке даты нет T (символы внутри одинарных кавычек ' в являются литералами), а PM не является "P.M.". Вещи, которые не нарушают его, но не являются полностью правильными, это то, что вы пытаетесь проанализировать месяц как минуту, а ваша строка даты может содержать как минимум 1 цифру месяц, день и час, поэтому вам не следует использовать 2 спецификатора, которые их дополняют если бы вы должны были создать строку из даты. Попробуйте это:

NSString *currentDateString = @"8/5/2011 1:38:13 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//Set the AM and PM symbols
[dateFormatter setAMSymbol:@"AM"];
[dateFormatter setPMSymbol:@"PM"];
//Specify only 1 M for month, 1 d for day and 1 h for hour
[dateFormatter setDateFormat:@"M/d/yyyy h:mm:ss a"]; 
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];

NSLog(@"current date: %@", currentDate);
//Example of the format using the actual date
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);
[dateFormatter release];
...