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