У меня есть NSDate, который я хочу отобразить в форме 4:00 PM.NSDateFormatter, возвращающий AM, когда должен быть PM
NSDate *time = [object objectForKey:@"time"];
NSLog(@"time: %@", time);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale currentLocale];
[dateFormatter setDateFormat:@"h:mm a"];
timeLabel.text = [dateFormatter stringFromDate:time];
Бревенчатые возвращается:
2014-03-08 13:00:00 +0000
Но timeLabel.text читает 1:00 утро, когда он должен быть вечером. Любая идея, что происходит?
изменения ваша дата форматирования. вы установили его «h: mm a» сделать его «hh: mm a» – iBug
Каков ваш часовой пояс? Если вы не устанавливаете часовой пояс на 'NSDateFormatter', вы будете использовать часовой пояс системы, который может вызвать смещение. – rckoenes
'NSDateFormatter' имеет' currentLocale', поэтому нет необходимости его добавлять. Скорее всего, время, которое вы получаете, находится в 'UTC'. Поэтому вам нужно установить часовой пояс на 'UTC', где вы изначально создаете« время », добавленное в словаре. – Anupdas