2014-12-04 92 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);