2014-12-04 94 views
0

...我已經尋找解決辦法的互聯網,但一直沒能解決我的問題。iOS的日期格式化返回NULL

我有我格式化日期,但它總是返回null。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.sss.ZZZZ"]; 
    NSString *dueDateString = [NSString stringWithFormat:@"2014-07-11T15:21:42.207+0200"]; 
    NSDate *dateFromApi = [dateFormatter dateFromString:dueDateString]; 
    [dateFormatter setDateFormat:@"yyyy/MM/dd"]; 
    NSString *finalDateString = [dateFormatter stringFromDate:dateFromApi]; 
    NSLog(@"dueDateString %@", dueDateString); 
    NSLog(@"dateFromApi %@", dateFromApi); 
    NSLog(@"finalDateString%@", finalDateString); 

我不知道我做錯了,但上面的格式似乎工作,如果我用這個格式0001-01-03T00:00:00.000 + 0200我得到0001/01/02的輸出。只要它改變了這樣的2014-07-11T15:21:42.207 + 0200它不工作,總是返回null?

+0

請參閱此鏈接來設置日期格式:http://waracle.net/iphone-nsdateformatter-date-formatting-table/。它會幫助你。 – Arpit 2014-12-04 06:13:07

+0

嘗試'YYYY-MM-dd'T'HH:MM:ss.zzzZ'格式。我得到了'2014-07-11 15:21:41 + 0000'。有關日期格式化更多詳情請查看(http://stackoverflow.com/questions/4086492/formatting-date-and-time-with-iphone-sdk) – 2014-12-04 06:18:09

回答

1

請使用下面的代碼

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"]; 
NSString *dueDateString = [NSString stringWithFormat:@"2014-07-11T15:21:42.207+02:00"]; 
NSDate *dateFromApi = [dateFormatter dateFromString:dueDateString]; 
[dateFormatter setDateFormat:@"yyyy/MM/dd"]; 
NSString *finalDateString = [dateFormatter stringFromDate:dateFromApi]; 
NSLog(@"dueDateString %@", dueDateString); 
NSLog(@"dateFromApi %@", dateFromApi); 
NSLog(@"finalDateString%@", finalDateString);