我有两个NSDate对象,我想要两者之间的差异,结果应该再次是一个NSDate对象 . 知道怎么做到这一点?
在这里,我试图解决一个独特的问题,我必须找出经过的时间,然后本地化经过的时间 . 如果我在NSDate对象中有经过的时间,我可以本地化它 . 所以考虑创建一个NSDate对象,其时间组件与两个日期之间的时间间隔相同,这样我就可以使用NSDateFormatter对其进行本地化 .
NSDate 表示时间实例,因此将时间间隔表示为 NSDate 没有意义 . 你想要的是 NSDateComponents :
NSDate
NSDateComponents
NSDate *dateA; NSDate *dateB; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:dateA toDate:dateB options:0]; NSLog(@"Difference in date components: %i/%i/%i", components.day, components.month, components.year);
如果你从2005年5月5日减去12/12/2001,这将是什么日期?两个日期之间的时间距离总是可以达到某种间隔 . 您可以使用timeIntervalSinceDate:来计算间隔 .
要进行本地化,您可以尝试以下步骤:
您可以将NSCalendar与dateFromComponents一起使用:传入NSDateComponents .
要将timeInterval分解为NSDateComponents,请查看How do I break down an NSTimeInterval into year, months, days, hours, minutes and seconds on iPhone? .
最后使用NSDateFormatter和initWithDateFormat:allowNaturalLanguage:获取本地化字符串 . Date Format String Syntax显示不同的占位符 .
从 NSDate 类引用中,您可以使用实例方法来执行这些操作 -
如何比较两个NSDate变量? Ans: isEqualToDate:
isEqualToDate:
如何找到两个NSDate变量之间的差异? Ans: timeIntervalSinceDate:
timeIntervalSinceDate:
如何从NSDate变量中获取分钟,小时和天的每个单独值? links
您可以使用 NSDate 的 timeIntervalSinceDate: 计算两个日期之间的时间间隔,但将时间间隔表示为日期没有任何意义 .
在NSDate中使用-compare是一种简单的方法:
NSDate *dateA = [NSDate dateWithTimeIntervalSinceNow:100]; NSDate *dateB = [NSDate dateWithTimeIntervalSinceNow:200]; NSDate *myDate = [NSDate dateWithTimeIntervalSinceNow:150]; NSArray *dateArray = [NSArray arrayWithObjects:dateA, dateB, myDate, nil]; NSArray *sortedArray = [dateArray sortedArrayUsingSelector:@selector(compare:)]; if ([myDate isEqualToDate:[sortedArray objectAtIndex:1]]) NSLog(@"myDatea between dateA and dateB");
5 回答
NSDate
表示时间实例,因此将时间间隔表示为NSDate
没有意义 . 你想要的是NSDateComponents
:如果你从2005年5月5日减去12/12/2001,这将是什么日期?两个日期之间的时间距离总是可以达到某种间隔 . 您可以使用timeIntervalSinceDate:来计算间隔 .
要进行本地化,您可以尝试以下步骤:
您可以将NSCalendar与dateFromComponents一起使用:传入NSDateComponents .
要将timeInterval分解为NSDateComponents,请查看How do I break down an NSTimeInterval into year, months, days, hours, minutes and seconds on iPhone? .
最后使用NSDateFormatter和initWithDateFormat:allowNaturalLanguage:获取本地化字符串 . Date Format String Syntax显示不同的占位符 .
从
NSDate
类引用中,您可以使用实例方法来执行这些操作 -如何比较两个NSDate变量? Ans:
isEqualToDate:
如何找到两个NSDate变量之间的差异? Ans:
timeIntervalSinceDate:
如何从NSDate变量中获取分钟,小时和天的每个单独值? links
您可以使用
NSDate
的timeIntervalSinceDate:
计算两个日期之间的时间间隔,但将时间间隔表示为日期没有任何意义 .在NSDate中使用-compare是一种简单的方法: