Xcode核心数据-将UITextField值转换为NSDate,并将核心数据保存为日期



iam使用Xcode 4.6,并有一个带有UITextField的视图,我可以在其中设置日期。这个值是NSString,我可以用NSLog看到它。现在我想把这个日期保存在coredata中。XCdatamodel有一个具有一个属性myDate-Date的实体。当我将NSString转换为NSDate时,我总是得到null。我的代码出了什么问题?感谢

我的代码:

//CoreData
AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];
context = [appdelegate managedObjectContext];
//Convert string to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-YYYY"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Berlin"]];
NSDate *dte1 = [dateFormat dateFromString:self.myDate_Textfield.text];
NSString *dateString = [NSString stringWithFormat:@"%@", self.myDate_Textfield.text];
NSDate *dte2 = [dateFormat dateFromString:dateString];
//Output
NSLog(@"Value 1: %@",dte1);
NSLog(@"Value 2: %@",dte2);
NSLog(@"Value 3: %@",self.myDate_Textfield.text);
NSLog(@"Value 4: %@",myDate_Textfield.text);
NSLog(@"Value 5: %@",dateString);
//Save
NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"MyDates" inManagedObjectContext:context];
[entity setValue:dte2 forKey:@"myDate"];
NSError *error;
[context save:&error];

输出:

值1:(null)值2:(null)数值3:2014年9月15日数值4:2014年9月15日值5:2014年9月15日

+(NSString *) stringFromDate:(NSDate *)date{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd.MM.yyyy"];
return [dateFormat stringFromDate:date];

}

请注意,您提供的字符串的日期格式不正确。并升级您的xcode。你将无法使用xcode 4.6提交应用程序,它已经过时了。

我现在将其更改为"dd.MM.yyyy"

输出为:"2014-09-14 22:00:00+0000"

当我查看数据库时,myDate的插入值是:"432424800"

最新更新