我正在使用核心数据,并以日期和时间格式存储值。但是我希望在获得日期和时间格式的同时获得(日期)格式。
答案 0 :(得分:2)
NSDate
是一个绝对时间点,Core Data将日期存储为秒数
自“参考日期”2001年1月1日以来。严格来说,没有这样的事情
“没有时间约会”。
如果您想显示年,月,日......日期,那么您必须使用NSDateFormatter 或NSDateComponents - 正如其他人已经说过的那样 - 将日期转换为人类可读的 格式。
但是从你的评论中我假设你想要获取指定的所有对象 天。在这种情况下,您必须首先计算给定日期的开始日期和结束日期:
NSDate *yourDate = ...;
NSDate *startOfDay, *endOfDay;
NSTimeInterval lengthOfDay;
NSCalendar *cal = [NSCalendar currentCalendar];
[cal rangeOfUnit:NSDayCalendarUnit startDate:&startOfDay interval:&lengthOfDay forDate:yourDate];
endOfDay = [startOfDay dateByAddingTimeInterval:lengthOfDay];
或者,如果日期是年,月,日:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.year = 2014;
comps.month = 1;
comps.day = 14;
NSDate *startOfDay = [cal dateFromComponents:comps];
comps.day += 1;
NSDate *endOfDay = [cal dateFromComponents:comps];
然后使用一个谓词来查找当天开始和结束之间的所有记录:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date >= %@ AND date < %@",
startOfDay, endOfDay];
这将获取与给定yourDate
在同一天具有“日期”的所有对象。
答案 1 :(得分:0)
您可以从coredata检索数据,如果您将其存储为NSDate
格式或NSString
格式,则该过程将几乎相似。
如果是NSDate
:
创建一个NSDateFormatter
,只为您提供(dd-mm-yyyy)格式的日期,您将获得NSString
个对象。
如果是NSString
:
然后你需要先将字符串日期转换为NSDate
并执行上述操作。
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"date-format"]; //here you need to change the format as per your string
NSDate *date = [dateFormatter dateFromString:dateString];