-1

我有一个应用程序当前从 Web 服务获取数据,NSXML 将其解析为核心数据。处理成核心数据。我缺少一个 updatedAtData 字段,我要求客户将其添加到他们的 Web 服务中,他们将其添加为字符串。这是解析日期的方法的作用:

- (void)setValue:(id)value forKey:(NSString *)key forManagedObject:(NSManagedObject *)managedObject {

    if ([key isEqualToString:@"createdAt"] || [key isEqualToString:@"updatedAt"]) {
        NSDate *date = [self dateUsingStringFromAPI:value];
        [managedObject setValue:date forKey:key];
    } else {
        [managedObject setValue:value forKey:key];
    }
}

它运行良好到这里。通过调用此方法设置日期:

- (NSDate *)dateUsingStringFromAPI:(NSString *)dateString {
    [self initializeDateFormatter];
    dateString = [dateString substringWithRange:NSMakeRange(0, [dateString length]-5)];

    return [self.dateFormatter dateFromString:dateString];
}

但是日期永远不会被设置,它返回 nil。我认为它与日期格式有关,这是服务器返回的内容:

1900-01-01T00:00:00

如何修复我的日期字符串?

4

1 回答 1

1

您的日期格式应该是

@"yyyy-MM-dd'T'hh:mm:ss"

假设年-月-日 'T' 12 小时(格式):分钟:秒

所以你的代码会像这样

     [self.dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss"];
    return [self.dateFormatter dateFromString:dateString];
}
于 2013-04-30T17:40:05.097 回答