NSDateFormatter dateFromString returns nil 在不正确的日期

NSDateFormatter dateFromString returns nil on improper date

我有一个看起来像这样的约会

2015-11-07T14:02:00Z

我正在尝试使用此方法将其转换为 NSDate 实例:

- (NSDate *)formatDateString:(NSString *)string {
    static NSDateFormatter *formatter = nil;
    if (formatter == nil) {
        formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy-mm-ddThh:mm:ssZ"];
        [formatter setDateStyle:NSDateFormatterMediumStyle];
        [formatter setTimeStyle:NSDateFormatterMediumStyle];
    }
    return [formatter dateFromString:string];
}

但是这个returns我没有。

谢谢

日期格式似乎不正确:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];

此外,您需要删除以下行,因为您已经在上面指定了所有日期组件。

[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterMediumStyle];

放在一起:

- (NSDate *)formatDateString:(NSString *)string {
    static NSDateFormatter *formatter = nil;
    if (formatter == nil) {
        formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    }
    return [formatter dateFromString:string];
}

--

[formatter dateFromString:@"2015-11-07T14:02:00Z"];