在iOS上舍入NSDate的正确方法是什么?

时间:2012-01-21 15:35:08

标签: objective-c ios ios5

我需要获取当前日期,但忽略分钟和秒,然后计算间隔。

例如说现在是早上7点30分,我需要看看它到第二天下午5点多少小时,不计算分钟数,这意味着在这种情况下早上7:30应该等于早上7点,结果应该是22个小时。

这可以通过

轻松完成
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

假设我能够创建间隔的两端。

我想到的唯一选择是使用NSDateFormatter将当前日期输出到没有分钟的字符串中,然后再解析它。但这似乎不是一个非常优雅和有效的解决方案。

我基本上需要做的是将NSDate修剪为特定的精度,例如天,然后修剪其余部分(7:50到7:00等)。

或者有什么简单的方法我可以用更聪明的方式做到这一点,其中7:50被改为8:00而不是7:00?

我需要在iOS 5上执行此操作。

1 个答案:

答案 0 :(得分:2)

可以使用NSCalendar进行计算,而不是解析您可以使用NSDateComponents。 当您从NSDateComponents获取小时和分钟时,您可以轻松应用舍入并将组件转换回日期。