3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
在進(jìn)行比較之前,您將日期中的時(shí)間設(shè)置為00:00:00:
unsigned int flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:date];
NSDate* dateOnly = [calendar dateFromComponents:components];
// ... necessary cleanup

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
令我驚訝的是,沒有其他答案可以使用此選項(xiàng)來獲取對(duì)象的“開始日期”日期:
[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay startDate:&date1 interval:NULL forDate:date1];
[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay startDate:&date2 interval:NULL forDate:date2];
哪個(gè)設(shè)置date1并date2開始各自的日子。如果它們相等,則它們?cè)谕惶臁?/p>
或此選項(xiàng):
NSUInteger day1 = [[NSCalendar currentCalendar] ordinalityOfUnit:NSDayCalendarUnit inUnit: forDate:date1];
NSUInteger day2 = [[NSCalendar currentCalendar] ordinalityOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitEra forDate:date2];
其中規(guī)定day1,并day2以可以比較有點(diǎn)武斷值。如果它們相等,則它們?cè)谕惶臁?/p>

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
iOS 8向NSCalendar引入了一種新方法,使此操作變得更加容易。
- (NSComparisonResult)compareDate:(NSDate *)date1 toDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)unit NS_AVAILABLE(10_9, 8_0);
您可以將粒度設(shè)置為重要的單位。這將忽略所有其他單位,并將比較范圍限制為所選單位。
- 3 回答
- 0 關(guān)注
- 848 瀏覽
添加回答
舉報(bào)