【问题标题】:Core Data saving DatePicker value核心数据保存 DatePicker 值
【发布时间】: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


【解决方案1】:

如果 UIDatePicker 的模式是 UIDatePickerModeDate 它允许您选择日、月和年信息,但 NSDate 也有时间组件。所以[personWhoOwesYouDueDate date] 会给你一个 NSDate 由选定的组件和你当前时间的时间组件组成(在这种情况下是 01:50:29)。如果您希望存储 2014-02-08 00:00:00,请执行以下操作:

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
cal.timeZone = [NSTimeZone systemTimeZone];
cal.locale = [NSLocale currentLocale];
NSDateComponents *dateComponents = [cal components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate: [personWhoOwesYouDueDate date]];
[owedMoney setValue:[cal dateFromComponents: dateComponents] forKey:@"dueDate"];

@rdelmar:NSDate 不存储任何时区信息。所以它不基于任何时区。时区只是在记录 NSDate 时发挥作用,它将显示基于 GMT 的日期“移位”到时区集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2011-08-11
    相关资源
    最近更新 更多