Я долго размышлял, почему это происходит, и понятия не имел. Если вы запустите следующий код:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy|HH:mm"];
NSDate *date = [formatter dateFromString:@"18-01-2011|06:00"];
NSDate *today = [[NSDate alloc] init];
NSLog(@"date is: %@, today is %@", date, today);
Если пользователь настроил часы в 24-часовом формате, приведенное выше печатает date is: 2011-01-18 11:00:00 +0000, today is 2011-01-19 00:56:56 +0000
. Однако, когда пользователь выбирает 12-часовой формат, вышеприведенное печатает date is: (null), today is 2011-01-19 12:58:51 a.m. +0000
.
Что я делаю неправильно? Разве formatter
не должно быть независимым от локали? пожалуйста помоги!