简体   繁体   English

NSDateFormatter dateFromString在不正确的日期返回nil

[英]NSDateFormatter dateFromString returns nil on improper date

I have a date that looks like this 我有一个看起来像这样的约会

2015-11-07T14:02:00Z 2015-11-07T14:02:00Z

I am trying to convert this into an NSDate instance using this method: 我正在尝试使用此方法将其转换为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];
}

But this returns me nil. 但是,这使我没有回报。

Thanks 谢谢

Date format seems to be incorrect: 日期格式似乎不正确:

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

Also, you need to remove the following lines because you already specified all date components in above. 另外,您需要删除以下几行,因为您已经在上面指定了所有日期组件。

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

Putting all together: 放在一起:

- (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"];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM