为啥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 错误的年份? [复制]