2015-01-06 3 views
-6

Я использую следующий код для изменения yyyy-MM-dd в M-dd-yyyy с использованием NSDateFormatter, но NSLog возвращает значение nil. Пожалуйста помоги. Заранее спасибо.NSDateFormatter, возвращающий nil с dateFromString

NSString *[email protected]"1992-11-15"; 
NSDateFormatter *format = [[NSDateFormatter alloc] init]; 

[format setDateFormat:@"MM-dd-yyyy"]; 
NSDate *DateOfBirth=[format dateFromString:trimmedDOB]; 

NSLog(@"DATE IS %@",DateOfBirth); 
+4

Ask yourse lf: Ваша строка формата вообще напоминает формат даты, которую вы пытаетесь преобразовать? –

+0

Сначала введите дату, а затем измените ее «dateFormat». Установите формат даты вашей исходной строки. Введите дату, используя 'NSDateFormatter', используя свой формат. Измените формат форматирования и конвертируйте. – Anupdas

+0

Я пытаюсь преобразовать yyyy-MM-dd в MM-dd-yyyy. Скажите, пожалуйста, где я совершаю ошибку. – Adhish

ответ

1
NSString *[email protected]"1992-11-15"; 
NSDateFormatter *format = [[NSDateFormatter alloc] init]; 

//Set your input format 
[format setDateFormat:@"yyyy-MM-dd"]; 

//Parse date from input format 
NSDate *dateOfBirth = [format dateFromString:trimmedDOB]; 

//Set your output format 
[format setDateFormat:@"MM-dd-yyyy"]; 

//Output date in output format 
NSLog(@"DATE IS %@",[format stringFromDate:dateOfBirth]); 
+0

Спасибо, мистер Ракеш. :) – Adhish

0

Измените код, как показано ниже:

формат
NSString *[email protected]"1992-11-15"; 
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init]; 
[inFormat setDateFormat:@"yyyy-MM-dd"]; 
NSDate *DateOfBirth=[inFormat dateFromString:trimmedDOB]; 
NSDateFormatter *outFormat = [[NSDateFormatter alloc] init]; 
[outFormat setDateFormat:@"MM-dd-yyyy"]; 
NSLog(@"DATE IS %@", [outFormat stringFromDate:DateOfBirth]); 
0
NSString *[email protected]"1992-11-15"; 
NSDateFormatter *dateformatterIn = [[NSDateFormatter alloc] init]; 
[dateformatterIn setDateFormat:@"yyyy-MM-dd"]; 
NSDate *DateOfBirth=[dateformatterIn dateFromString:trimmedDOB]; 
NSDateFormatter *dateformatterOut = [[NSDateFormatter alloc] init]; 
[dateformatterOut setDateFormat:@"MM-dd-yyyy"]; 
0

Каждая дата соответствует одному формату даты. Поскольку у вас есть 2 формата даты (одна строка даты, из которой вы конвертируете, и тот, на который вы конвертируете), вам нужны два форматирования даты.

Так конвертировать из одной строки даты к другим:

  1. Create «из» Даты форматировщика (формат: гггг-ММ-ДД)
  2. Преобразовать ваш источник «строку даты» в «NSDate объект»
  3. Create„на“Дата форматировщиком (формат: ММ-дД-гГГГ)
  4. Преобразовать„NSDate объект“, созданный на шаге 2 в конечный„строки даты“
Смежные вопросы