我希望NSDate仅根据当天比较对象(忽略时间).而不是将时间转换为0:00:00,或使用NSDateComponent大多数解决方案(例如,比较两个NSDates并忽略时间组件)
有没有人看到将日期转换为int代表自1970年以来使用该timeIntervalSince1970方法的天数的问题?
return (int)([date timeIntervalSince1970]/(SECONDS_PER_DAY));
Run Code Online (Sandbox Code Playgroud)
是的,一点没错.日期数学有无穷无尽的陷阱.使用NSDateComponents; 他们并不难.
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *date1Components = [cal components:NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:date1];
NSDateComponents *date2Components = [cal components:NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:date2];
NSComparisonResult comparison = [[cal dateFromComponents:date1Components] compare:[cal dateFromComponents:date2Components];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1308 次 |
| 最近记录: |