2015-01-06 178 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中創建到最終的 '日期字符串'