2011-10-14 63 views
1

当我在CoreData中将日期存储为[NSDate日期]时,它将保存-5:30的差异。在核心数据中,我使用属性类型作为日期。在核心数据中存储带有系统时区的NSDate

如何用timeZone存储NSdate?

更新:这里是我使用的代码:

存储日期:

database = (DataBase*) [fetchResults objectAtIndex:indexVal]; 
[database setDate:[NSDate date]]; 
NSError error = nil; 
[managedObjectContext save:&error] 

提取日期:

DataBase *newDataBase = (DataBase) [fetchResults objectAtIndex:i]; 
NSDate *RetrivedDate = [newDataBase Date]; 
NSLog(@"Retrived Date :",RetrivedDate"); 

存储我记录它之前。它显示当前的日期和时间。存储后,我立即提取日期。但它显示1天延迟日期。

回答

1

NSDate没有时区。它将日期存储为格林尼治标准时间后的秒数。

使用NSDateFormatter格式化显示日期时将应用时区。这将默认选择设备时区。

+0

但我作为NSDate * dat = [db日期]存储日期为[NSDate日期]和retrived日期;它显示了一天和一小时的差异。如何解决它。 – Siva

+0

而且我在Db中存储后立即检查了两个日期之间的差异。然后有一天的差异。请帮助 – Siva

+0

如果您有特定示例,您是否可以使用代码更新您的问题? – jrturton