dateFromString возвращает ноль через 24 часа после изменения - PullRequest
3 голосов
/ 19 ноября 2010
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"hh:mm a"];

NSDate* sourceDate = [timeFormat dateFromString:@"19/11/2010 12:00 am"];
if(sourceDate==nil)
{
    NSLog(@"source date nil");
}

Я использую 24-часовую настройку в iPhone. После того, как я изменил настройку на 24 часа, datefromstring всегда возвращает ноль. Я перехожу на 12-часовой формат, он снова работает. Зачем ?

1 Ответ

5 голосов
/ 19 ноября 2010

Необходимо установить языковой стандарт, чтобы избежать влияния изменения настроек за 24 часа.
Формат также должен соответствовать строке ввода (которая в вашем примере включает дату):

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
NSLocale *locale = [[[NSLocale alloc] 
                    initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];  
[timeFormat setLocale:locale];
[timeFormat setDateFormat:@"dd/MM/yyyy hh:mm a"];

NSDate* sourceDate = [timeFormat dateFromString:@"19/11/2010 12:00 am"];
if(sourceDate==nil)
{
    NSLog(@"source date nil");
}

См. QA1480 для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...