Этот NSDate может показывать шоу, когда я отлаживаю симулятор из xcode. Но когда я отлаживаю в iphone6, он показывает NULL.
NSString *dateWithTime = [NSString stringWithFormat:@"2019/03/18 09:30 AM"];
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd hh:mm a";
[fmt setAMSymbol:@"am"];
[fmt setPMSymbol:@"pm"];
fmt.timeZone = [NSTimeZone systemTimeZone];
NSDate *localDate = [fmt dateFromString:dateWithTime];
NSLog(@"DATE -- %@ ", [fmt stringFromDate:localDate]);
Понятия не имею, потому что часовой пояс телефона не использует am/pm или какие-либо другие причины.
Пожалуйста, помогите мне ответить на него.
уже отредактировал вопрос. дата, которую я указал в dateWithTime.
Начните с замены - на / в соответствии со строкой. Попробуйте заменить am на AM, чтобы оно соответствовало строке. Если ни один из этих способов не работает, установите для форматирования специальную локаль en_US_POSIX (что вы должны сделать в любом случае).
большое спасибо. Установив вещь, локаль действительно работает.





Попробуйте установить локаль для средства форматирования даты
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
Обновлять
Для локали en_US_POSIX вы можете использовать:
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
Не хочешь en_US, хочешь en_US_POSIX.
Каково точное значение
dateWithTime? Пожалуйста, укажите это в своем вопросе.