为啥Core Data会从我在NSDate的天数中减去1

Posted

技术标签:

【中文标题】为啥Core Data会从我在NSDate的天数中减去1【英文标题】:Why does Core Data deduct 1 from the numeric value of my days in NSDate为什么Core Data会从我在NSDate的天数中减去1 【发布时间】:2013-03-27 15:32:03 【问题描述】:

当我尝试使用 JSON 将日期值解析为我的核心数据时,日期值会减去一天。例如,在 JSON 中,我写:“date”:“14/03/13”并将其作为 13/03/13 存储在我的核心数据中。关于为什么会发生这种情况的任何想法?下面是我的代码

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd - MM - yy"];
    [dateFormatter setCalendar:[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]];

    dayinfo.date = [dateFormatter dateFromString:[obj objectForKey:@"date"]];

【问题讨论】:

@JoshAreogun 你知道 JSON 中日期的时区吗?默认情况下,NSDateFormatter 会假设您的时区在本地。如果 JSON 日期为 UTC 且您的时​​区为 -10:00,则可能会发生这种情况。在将日期作为字符串传递时,最好包含时区信息以避免假设。 太棒了,时区建议就像一个魅力。你 *** 的人是最棒的 :) 【参考方案1】:

尝试根据您当地的时区设置时区。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

【讨论】:

以上是关于为啥Core Data会从我在NSDate的天数中减去1的主要内容,如果未能解决你的问题,请参考以下文章

无法将 NSDate 从 Parse 存储到 Core Data

谓词因从 Core Data 获取属性类型为“NSDate”对象的对象而失败

Xcode Entity Core Data - NSDate 错误的年份? [复制]

在Objective-C的NSDate中获取一个月的天数?

如何将日期类型保存到 Swift Core Data 中实体的属性?

如何计算不同时区的两个 NSDate 对象之间的天数差异?