iOS Date Formatter返回Null

时间:2014-12-04 06:05:51

标签: ios objective-c nsdate nsdateformatter

我在互联网上搜索了一个解决方案,但一直无法解决我的问题。

我有一个我正在格式化的日期,但它总是返回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?

1 个答案:

答案 0 :(得分: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);