Почему NSDateFormatter возвращает ноль за 29 февраля? - PullRequest
1 голос
/ 01 марта 2012

NSDateFormatter возвращает nil, когда я пытаюсь проанализировать строку @ "02291120" со строкой форматера

@"MMddHHmm"

Однако 29 февраля является допустимой датой (для високосного года).Как мне убедиться, что результат, возвращаемый парсером, не равен nil?

Ответы [ 2 ]

7 голосов
/ 01 марта 2012

Вы не указали форматеру даты, какой год использовать.

Если вы не включите год в свой формат даты, тогда он использует 1970 по умолчанию.Если вы хотите, чтобы он использовал другой год по умолчанию, вы должны задать форматеру даты дату по умолчанию.Например, если вы хотите использовать текущий год, вы можете просто установить текущую дату по умолчанию:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"MMddHHmm";
df.defaultDate = [NSDate date];
NSDate *date = [df dateFromString:@"02291120"];
0 голосов
/ 01 марта 2012

Если вы хотите получить дату «0229», вы должны добавить формат года следующим образом:

@"YYYYMMddHHmm" @"201202291120"
...