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

时间:2014-09-15 07:09:03

标签: nsstring nsdate textfield

我使用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:15.09.2014 价值4:15.09.2014 价值5:15.09.2014

2 个答案:

答案 0 :(得分:0)

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

}

查看提供的字符串的日期格式是否正确。并升级您的xcode。您将无法使用xcode 4.6提交应用程序,它已过时了。

答案 1 :(得分:0)

我现在改为“dd.MM.yyyy”

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

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