Я пытаюсь преобразовать текст, который появляется в UILabel моей ячейки, в формат NSDate. По какой-то причине мой приведенный ниже код не работает, хотя моя строка (timeEnd) содержит значение? Результат timeEnd: 19-08-2018 17:38, и все же по какой-то причине мой результат преобразования (NULL)?
ViewController.m
NSString *timeEnd = filteredSwap[indexPath.row][@"endswaptime"];
cell.endTime.text = timeEnd;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM y hh:mm a zzz"];
NSLog(@"Date is: %@", [dateFormatter dateFromString:timeEnd]);
@MadProgrammer Омг, да ... Спасибо!
Добро пожаловать в лес, берегите деревья;)





The output of timeEnd is: 19-08-2018 17:38 , and yet for some reason my conversion result is (NULL)?
Формат вашей строки не соответствует формату, который вы используете для средства форматирования даты. Таким образом, NSDateFormatter не может создать действительную дату в указанном вами формате и возвращает nil.
Используйте приведенный ниже код, чтобы получить дату:
NSString *timeEnd = filteredSwap[indexPath.row][@"endswaptime"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-mm-yyyy HH:mm"];
NSLog(@"Date is: %@", [dateFormatter dateFromString:timeEnd]);
NSString *timeString = @"01/03/2018";
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
NSDateFormatter *dateFormatter =[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss"];
[dateFormatter setTimeZone:timeZone];
result = [dateFormatter dateFromString:timeString];
Взгляните на свой формат,
EEE, dd MMM y hh:mm a zzz- как он соответствует вашему входному19-08-2018 17:38? Подозреваю, что формат, подобныйdd-MM-yyyy HH:mm, даст лучший результат