NSDate 格式化、转换与比较
关于日期在iOS开发的应用,大多数需求都和日期与NSString相互转换相关,最多会用到两个日期的比较,我就只记录下这几种情况的解决方法:
1、NSDate转字符串
//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设置格式 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //用[NSDate date]获取当前时间并转字符串 NSString *dateStr = [dateFormatter stringFromDate:[NSDate date]]; NSLog(@"%@",dateStr);
2、字符串转NSDate
//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //拷贝时间格式,与字符串格式相同 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //把字符串theTime转为日期 NSDate *theDate = [dateFormatter dateFromString:theTime]; NSLog(@"%@",theDate);
3、两日期的比较
//两个日期 NSDate *date1 = [NSDate date]; NSDate *date2 = [NSDate date]; //比较哪个时间晚 NSComparisonResult sCOM= [date1 compare:date2]; if (sCOM == NSOrderedDescending) {//晚 NSLog(@"date1比date2--->晚"); } if (sCOM == NSOrderedAscending){//早 NSLog(@"date1比date2--->早"); } if (sCOM == NSOrderedSame){//相同 NSLog(@"date1比date2--->相同"); } //比较是否相等 BOOL isSame = [date1 isEqualToDate:date2]; NSLog(@"%i",isSame);
有时要比较两个日期,然后得到更早或更晚的那个,则需要使用以下两个方法:
- (NSDate *)earlierDate:(NSDate *)anotherDate;
与anotherDate比较,返回较早的那个日期
- (NSDate *)laterDate:(NSDate *)anotherDate;
与anotherDate比较,返回较晚的那个日期
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。wbl
不论人生多不幸,聪明的人总会从中获得一点利益;不论人生多幸福,愚蠢的人总觉得无限悲哀。