Objective C 如何比较两个 date_time 对第二个值的无知
Objective C how to compare two date_time with the ignorance on second value
实际上我们想比较这种格式的 NSDate "yyyy-MM-dd HH:mm",那么我们如何比较日期、小时和分钟的两个 date_time 值并忽略 [=16] 中的第二个值=], ios ?
如今,最好的方法可能是使用 -[NSCalendar isDate:equalToDate:toUnitGranularity:]
。
BOOL datesAreEqual = [[NSCalendar currentCalendar] isDate:date1
equalToDate:date2 toUnitGranularity:NSCalendarUnitMinute];
要比较它们(找出哪个更多 recent/late),请改用 -[NSCalendar compareDate:toDate:toUnitGranularity:]
。
NSCalendar
有一个非常方便的方法来比较受特定单位限制的日期。将 toUnitGranularity
参数设置为 NSCalendarUnitMinute
并忽略秒数。
NSDate *date1 = [NSDate date];
NSDate *date2 = [date1 dateByAddingTimeInterval:30.0];
NSComparisonResult compareDateIgnoringSeconds = [[NSCalendar currentCalendar]
compareDate:date1
toDate:date2
toUnitGranularity:NSCalendarUnitMinute];
NSLog(@"%@, %@, %ld", date1, date2, compareDateIgnoringSeconds);
结果为NSOrderedSame
相等,NSOrderedAscending
和NSOrderedDescending
为date1
之前date2
和date1
之后date2
]
实际上我们想比较这种格式的 NSDate "yyyy-MM-dd HH:mm",那么我们如何比较日期、小时和分钟的两个 date_time 值并忽略 [=16] 中的第二个值=], ios ?
如今,最好的方法可能是使用 -[NSCalendar isDate:equalToDate:toUnitGranularity:]
。
BOOL datesAreEqual = [[NSCalendar currentCalendar] isDate:date1
equalToDate:date2 toUnitGranularity:NSCalendarUnitMinute];
要比较它们(找出哪个更多 recent/late),请改用 -[NSCalendar compareDate:toDate:toUnitGranularity:]
。
NSCalendar
有一个非常方便的方法来比较受特定单位限制的日期。将 toUnitGranularity
参数设置为 NSCalendarUnitMinute
并忽略秒数。
NSDate *date1 = [NSDate date];
NSDate *date2 = [date1 dateByAddingTimeInterval:30.0];
NSComparisonResult compareDateIgnoringSeconds = [[NSCalendar currentCalendar]
compareDate:date1
toDate:date2
toUnitGranularity:NSCalendarUnitMinute];
NSLog(@"%@, %@, %ld", date1, date2, compareDateIgnoringSeconds);
结果为NSOrderedSame
相等,NSOrderedAscending
和NSOrderedDescending
为date1
之前date2
和date1
之后date2
]