2015-01-06 140 views
-6

我正在使用下面的代码,使用NSDateFormatter将yyyy-MM-dd更改为M-dd-yyyy,但NSLog返回值为零。请帮忙。提前致谢。NSDateFormatter使用dateFromString返回nil

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

向yourse的NSDate对象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

谢谢Mr.Rakesh。 :) – 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. '从' 日期格式创建(格式:YYYY-MM-DD)
  2. 转换源 '日期字符串' 到“的NSDate对象”
  3. 创建 '到' 日期格式(格式为:MM-DD-YYYY)
  4. 转换的'你在步骤2中创建到最终的 '日期字符串'