Objective c 目标C如何在忽略第二个值的情况下比较两个日期和时间
事实上,我们想用这种格式“yyyy-MM-dd-HH:MM”来比较NSDate,那么我们如何比较日期、小时和分钟的两个日期时间值,而忽略目标c、ios中的第二个值呢?现在,最好的方法可能是使用Objective c 目标C如何在忽略第二个值的情况下比较两个日期和时间,objective-c,nsdate,Objective C,Nsdate,事实上,我们想用这种格式“yyyy-MM-dd-HH:MM”来比较NSDate,那么我们如何比较日期、小时和分钟的两个日期时间值,而忽略目标c、ios中的第二个值呢?现在,最好的方法可能是使用 要比较它们(找出哪一个比较新/晚),请改用。现在,最好的方法可能是使用 要比较它们(找出哪一个最近/晚),请改用。NSCalendar有一种非常方便的方法来比较受特定单位限制的日期。将toUnitGranularity参数设置为NSCalendarUnitMinute,秒数将被忽略 NSDate *dat
要比较它们(找出哪一个比较新/晚),请改用。现在,最好的方法可能是使用
要比较它们(找出哪一个最近/晚),请改用。
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);
结果是
sensorderedame
表示相等,sensorderedescending
和sensorderedescending
表示date1
之前date2
和date1
之后date2NSCalendar
有一种非常方便的方法来比较约束到特定单位的日期。将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);
结果是日期2
之前和日期2
之后的日期1
和日期2
之前和日期1
之后的日期2
在这两个日期将第二个值设置为00
,您可以使用NSDateFormatter
将这两个NSString
对象转换为NSDate
对象,然后使用NSDateComponents
检查相关组件的相等性。或者,如果它们的格式确实与您设置的格式相同且简单(相同的时区等),您只需在子字符串上进行比较(删除代表分钟的最后两个字符)。@Larme没有字符串,只需到NSDate
。OP只想忽略两个NSDate
实例的“秒数”。一方面,我想结束这个问题,因为它本质上是一个重复的。另一方面,对于新手来说,如何修改这些答案来解决当前问题可能并不明显。@rmaddy:这就是问题描述的难点所在。作者使用了NSDate
术语和格式。这非常令人困惑,因为NSDate
objectdescription
方法显示+0000,所以我假设NSString
在两个日期都将第二个值设置为00
,您可以使用NSDateFormatter
将这两个NSString
对象转换为NSDate
对象,然后使用NSDateComponents
检查相关组件的相等性。或者,如果它们的格式确实与您设置的格式相同且简单(相同的时区等),您只需在子字符串上进行比较(删除代表分钟的最后两个字符)。@Larme没有字符串,只需到NSDate
。OP只想忽略两个NSDate
实例的“秒数”。一方面,我想结束这个问题,因为它本质上是一个重复的。另一方面,对于新手来说,如何修改这些答案来解决当前问题可能并不明显。@rmaddy:这就是问题描述的难点所在。作者使用了NSDate
术语和格式。这非常令人困惑,因为NSDate
objectdescription
方法显示+0000,这就是为什么我假设NSString
我忘记了这个。比我的答案好多了。我忘了这个。比我的答案好多了。