【发布时间】:2014-02-04 01:52:47
【问题描述】:
所以我有 2 个实体,它们都带有 NSDate 属性。我的“OwedMoney”实体有一个“youOweDate”NSDate 属性,而我的“TheyOweMoney”实体有一个“dueDate”NSDate 属性。在两个视图控制器上,我都有一个 UIDatePicker 类型的 Date。所以它只显示月、日和年。下面的代码是我尝试保存 DatePicker 的日期值的地方。我的 DatePicker 的名字是“personWhoOwesYouDueDate”
NSDate *choice = [personWhoOwesYouDueDate date];
NSManagedObjectContext *context = [self managedObjectContext];
TheyOweMoney *owedMoney = [NSEntityDescription insertNewObjectForEntityForName:@"TheyOweMoney" inManagedObjectContext:context];
[owedMoney setValue:choice forKey:@"dueDate"];
然后我有一个 NSLog 来检查值
NSLog(@"%@", choice);
因此,当我的应用程序加载时,我选择了一个日期,例如 2014 年 2 月 8 日,我没有得到预期的结果
进入时间:2014 年 2 月 8 日
结果:2014-02-09 01:50:29 +0000
所以它有正确的年份和月份,但日期是错误的。另外,有没有办法摆脱“+0000”部分?这真的很烦人。另一件事是我的日期值不能是字符串,因为当我将它的值设置为属性时,它必须是 NSDate 的实例。
感谢所有帮助,谢谢。
【问题讨论】:
-
这只是日期的记录方式——它们以格林威治标准时间显示日期。存储的日期将是基于您所在时区的正确日期。如果您想正确记录(或向用户显示)日期,请先将其转换为字符串,然后记录或显示。
-
所以我的约会放假正常吗?
-
问题是当我将它转换为字符串时,我无法将我的属性值设置为它。我的属性只需要一个 NSDate。
-
由于当地时间和 GMT 之间的差异而关闭它是正常的 - 如果这导致它在不同的一天,那么这就是将被记录的内容。您仅将其转换为字符串以用于显示或记录目的——您仍将其作为日期添加到您的实体中。
标签: ios objective-c xcode core-data