NSDate从String返回nil

时间:2018-07-09 20:04:40

标签: ios objective-c nsdate nsdateformatter

我将日期存储为字符串,格式为:2018-07-10 21:00:29 +0000

我创建了一个格式化程序,将字符串转换回日期:

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
[formatter setLocale:[NSLocale currentLocale]];
NSDate *date = [formatter dateFromString:[chore getDate]];

但是,返回的日期始终为零。有人知道我在做什么错吗?

2 个答案:

答案 0 :(得分:3)

您在日期格式中设置了错误的格式。因此它将始终返回nil值。

以下方法可以以NSDate格式返回日期。

-(NSDate *)convertDate :(NSString *)date1  //the argument date1 is the string date you used

{   
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z"; // the format which you used in the string date
    [formatter setLocale:[NSLocale currentLocale]]; //This for set the Locale .It is not compulsory.
    NSDate *date = [formatter dateFromString:date1];
    return date;

}

答案 1 :(得分:1)

请参阅日期格式化程序日期格式here

您需要将日期格式更新为: "yyyy-MM-dd HH:mm:ss Z"