Ios 为什么我的日期没有存储为NSDate?

Ios 为什么我的日期没有存储为NSDate?,ios,nsdate,Ios,Nsdate,我的应用程序从Web服务中获取一个日期字符串,并将其解析到我的核心数据库中。Web服务返回此格式的日期: 1900-01-01T00:00:00 我获取字符串并使用NSDateFormatter将其转换为NSDate,然后将其粘贴到数据库中,其中字段的类型为NSDate。但当设置如下值时: - (void)setValue:(id)value forKey:(NSString *)key forManagedObject:(NSManagedObject *)managedObject {

我的应用程序从Web服务中获取一个日期字符串,并将其解析到我的核心数据库中。Web服务返回此格式的日期:

1900-01-01T00:00:00
我获取字符串并使用NSDateFormatter将其转换为NSDate,然后将其粘贴到数据库中,其中字段的类型为NSDate。但当设置如下值时:

- (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];
        NSLog(@"the formatted date is %@", date);

    } else {
        [managedObject setValue:value forKey:key];
    }
}
NSDate*日期=[自日期…];如果我将鼠标悬停在NSDate*date上,则该行显示无效指针。然后,在设置值之后,一旦它到达下一行managedObject setValue…,date显示变量在两个实例中都不是NSDate。以及格式化日期返回的NSLog:

格式化日期为:

1900-01-01 00:00:00 +0000
这些值存储在数据库中,因为我在MesaSQlite中查看数据库,它显示的日期为:

-3187296000
为什么我得到无效的指针和变量而不是NSDate

以下是NSDateFormatter方法:

#pragma Date Formatting Methods
- (void)initializeDateFormatter {
    if (!self.dateFormatter) {
        self.dateFormatter = [[NSDateFormatter alloc] init];
        [self.dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
        [self.dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    }
}

- (NSDate *)dateUsingStringFromAPI:(NSString *)dateString {
    [self initializeDateFormatter];
    NSLog(@"dateString received from API == %@",dateString);
    NSLog(@"value sent to setValue:forKey == %@",[self.dateFormatter dateFromString:dateString]);
    return [self.dateFormatter dateFromString:dateString];
}

您能提供dateUsingStringFromAPI:方法的代码吗?您的问题更可能存在。@EmanuelPeñaaGuillar我粘贴了日期的方法。您是否尝试从数据库中检索NSManagedObject并查看存储的NSDate是否正确?