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:]; //This variable should now be pointing at a date object that is the start of today (midnight);
[components setHour:-];
[components setMinute:];
[components setSecond:];
NSDate *yesterday = [cal dateByAddingComponents:components toDate: today options:];
components = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[[NSDate alloc] init]];
[components setDay:([components day] - ([components weekday] - ))];
NSDate *thisWeek = [cal dateFromComponents:components];
[components setDay:([components day] - )];
NSDate *lastWeek = [cal dateFromComponents:components];
[components setDay:([components day] - ([components day] -))];
NSDate *thisMonth = [cal dateFromComponents:components];
[components setMonth:([components month] - )];
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 / ;
int hour = minute / ;
if (minute < ) {
_string = [NSString stringWithFormat:@"%@",@"剛剛"];
}else if (hour < && minute >= ) {
_string = [NSString stringWithFormat:@"%d分鐘前",minute];
}else if (hour >= && hour < ) {
_string = [NSString stringWithFormat:@"%d小時前",hour];
}else if (hour >= && hour < * ) {
_string = [NSString stringWithFormat:@"%d天前",hour / ];
}else if (hour > * ) {
_string = [NSString stringWithFormat:@"%@",string];
}
NSLog(@"%@",_string);
// 輸出結果為:剛剛
另附:NSTimeInterval—時間戳對比判斷 昨天、今天
http://blog.csdn.net/timtian008/article/details/67640470