NSDateFormatter и yyyy-MM-dd
Я пытаюсь взять дату NSString в формате "2/22/11" и преобразовать ее в этот формат: 2011-02-22
Это мой код:
NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
dateTemp = [dateFormat dateFromString:newInvoice.date];
newInvoice.date = [dateFormat stringFromDate:dateTemp];
newInvoice.date
начинается как NSString, равное "2/22/11". dateTemp
заканчивается NIL. newInvoice.date
также заканчивается NIL.
Я не могу для жизни понять, почему.
Ответы
Ответ 1
Вы столкнулись с этой проблемой, потому что ваш формат даты неверен. Предположим, что ваш магазин newInvoice.date хранит "11:02:23", ваш dateFormatter должен быть @ "yy: MM: dd", и если ваша переменная newInvoice.date магазин "2/22/11", то ваша датаФормат должен быть @ "MM/dd/yy"
NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat1 setDateFormat:@"MM/dd/yy"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd"];
dateTemp = [dateFormat1 dateFromString:newInvoice.date];
newInvoice.date = [dateFormat2 stringFromDate:dateTemp];
оба формата должны соответствовать вашему требованию, чтобы получить правильный результат
Ответ 2
Это должно работать нормально. Я установил стиль Date. Вы можете изменить NSDateFormatterShortStyle
на что-то другое. Также проверьте формат newInvoice.date.
NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle: NSDateFormatterShortStyle];
dateTemp = [dateFormat dateFromString: newInvoice.date];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
newInvoice.date = [dateFormat stringFromDate:dateTemp];