NSString 转NSDate 之昨天、今天、明天
NSDate *today = [NSDate dateWithString:@"2009-12-11 00:00:00 +0000"]; NSDate *yesterday = [NSDate dateWithString:@"2009-12-10 00:00:00 +0000"]; NSDate *thisWeek = [NSDate dateWithString:@"2009-12-06 00:00:00 +0000"]; NSDate *lastWeek = [NSDate dateWithString:@"2009-11-30 00:00:00 +0000"]; NSDate *thisMonth = [NSDate dateWithString:@"2009-12-01 00:00:00 +0000"]; NSDate *lastMonth = [NSDate dateWithString:@"2009-11-01 00:00:00 +0000"]; 要求出上面的时间 NSCalendar *cal = [NSCalendar currentCalendar]; NSDateComponents *components = [cal components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:[[NSDate alloc] init]]; [components setHour:-[components hour]]; [components setMinute:-[components minute]]; [components setSecond:-[components second]]; NSDate *today = [cal dateByAddingComponents:components toDate:[[NSDate alloc] init] options:0]; //This variable should now be pointing at a date object that is the start of today (midnight); [components setHour:-24]; [components setMinute:0]; [components setSecond:0]; NSDate *yesterday = [cal dateByAddingComponents:components toDate: today options:0]; components = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[[NSDate alloc] init]]; [components setDay:([components day] - ([components weekday] - 1))]; NSDate *thisWeek = [cal dateFromComponents:components]; [components setDay:([components day] - 7)]; NSDate *lastWeek = [cal dateFromComponents:components]; [components setDay:([components day] - ([components day] -1))]; NSDate *thisMonth = [cal dateFromComponents:components]; [components setMonth:([components month] - 1)]; NSDate *lastMonth = [cal dateFromComponents:components]; NSLog(@"today=%@",today); NSLog(@"yesterday=%@",yesterday); NSLog(@"thisWeek=%@",thisWeek); NSLog(@"lastWeek=%@",lastWeek); NSLog(@"thisMonth=%@",thisMonth); NSLog(@"lastMonth=%@",lastMonth);NSDateFormatter 格式化
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"yyyy年MM月dd日#EEEE"];//EEEE为星期几,EEE为周几 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];NSDate 与 NSString 的互相转换:
由 NSDate 转换为 NSString: // 将当前时间以字符串形式输出 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *strDate = [dateFormatter stringFromDate:[NSDate date]]; 由 NSString 转换为 NSDate: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date = [dateFormatter dateFromString:@"2010-08-04 16:01:03"];对比时间转换成类似于几分钟前、几天前
** 后台数据格式一:NSString *time = @"2016-07-01 09:52:00"; ====== ** // 距离1970年有多少秒 NSDateFormatter *formatter11 = [[NSDateFormatter alloc] init]; [formatter11 setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date11 = [formatter11 dateFromString:time]; NSTimeInterval dis = [date11 timeIntervalSince1970]; // 时间换算 NSDate *currentDate = [NSDate date]; //(当前时间) NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:dis]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd"; NSString *string = [formatter stringFromDate:date]; NSTimeInterval spaceTime = [currentDate timeIntervalSinceDate:date]; int second = (int)spaceTime; int minute = second / 60; int hour = minute / 60; if (minute < 1) { _string = [NSString stringWithFormat:@"%@",@"刚刚"]; }else if (hour < 1 && minute >= 1) { _string = [NSString stringWithFormat:@"%d分钟前",minute]; }else if (hour >= 1 && hour < 24) { _string = [NSString stringWithFormat:@"%d小时前",hour]; }else if (hour >= 24 && hour < 10 * 24) { _string = [NSString stringWithFormat:@"%d天前",hour / 24]; }else if (hour > 24 * 10) { _string = [NSString stringWithFormat:@"%@",string]; } NSLog(@"%@",_string); // 输出结果为:刚刚另附:NSTimeInterval—时间戳对比判断 昨天、今天 http://blog.csdn.net/timtian008/article/details/67640470
