2013-03-27 40 views
0

當我嘗試使用JSON將日期值解析到我的核心數據中時,日期值會扣除一天。例如在JSON中,我寫入:「date」:「14/03/13」,並將其作爲13/03/13存儲在我的coredata中。任何想法爲什麼發生這種情況?以下是我的代碼爲什麼Core Data從NSDate中的天數值中扣除1

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

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

設置時區 – nsgulliver 2013-03-27 15:33:41

+0

@JoshAreogun你知道在JSON日期的時區。 NSDateFormatter默認會假設你的timeZone在本地。如果JSON日期在UTC和你的時區-10:00,這可能會發生。雖然將日期作爲字符串傳遞,但它總是更好地包含timeZone信息以避免假設。 – Anupdas 2013-03-27 16:14:42

+0

太棒了,時區建議像一個魅力一樣工作。你StackOverflow的人是最好的:) – 2013-03-27 20:42:57

回答

3

嘗試根據當地時區爲日期設置時區。

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

[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
相關問題