1.时间转成时间戳
NSTimeZone *zone = [NSTimeZone defaultTimeZone];//获得当前应用程序默认的时区
NSInteger interval = [zone secondsFromGMTForDate:[NSDate date]];//以秒为单位返回当前应用程序与世界标准时间(格林威尼时间)的时差
NSDate *localeDate = [[NSDate date] dateByAddingTimeInterval:interval];
NSTimeInterval timeInterval2 = [localeDate timeIntervalSince1970];
NSLog(@"%f",timeInterval2);
2.时间戳转成时间
NSTimeInterval timeInterval = [@"1350359820.211" doubleValue];
NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSLog(@" date2 -------------------- %@",date2);
NSDate* date = [NSDatedateWithTimeIntervalSince1970: message.receivedTime/1000.0];
NSString* dateString = [NSStringstringWithFormat:@"%@",date];
NSArray *a = [dateStringcomponentsSeparatedByString:@" "];
groupCell.time.text = [a[1]substringToIndex:[a[1]length] -3];
NSDate* date = [NSDatedateWithTimeIntervalSince1970: message.receivedTime/1000.0];
NSTimeZone *zone = [NSTimeZonesystemTimeZone];
NSInteger interval = [zonesecondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
NSString* dateString = [NSStringstringWithFormat:@"%@",localeDate];
NSArray *a = [dateStringcomponentsSeparatedByString:@" "];
groupCell.time.text = [a[1]substringToIndex:[a[1]length] -3];
3. 获取当前系统时间并设置格式以及计算两个日期的差值
NSDate *date = [NSDate date];//获得时间对象
NSDateFormatter *forMatter = [[NSDateFormatter alloc]init];
[forMatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStr = [forMatter stringFromDate:date];
NSDate *currentDate = [NSDatedate];//获取当前时间,日期
NSDateFormatter *dateFormatter = [[NSDateFormatteralloc]init];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString *dateString = [dateFormatterstringFromDate:currentDate];
NSLog(@"dateString:%@",dateString);
NSString*
dateString1 = @"2016-03-23"; NSString*
dateString2 = @"2016-03-25"; NSDate*
date1 = [dateFormatter dateFromString:dateString1]; NSDate*
date2 = [dateFormatter dateFromString:dateString2];NSTimeInterval time = [date2timeIntervalSinceDate:date1];//date1是前一个时间(早),date2是后一个时间(晚)
NSLog(@"time = %d", (int)time/(3600*24));//结果就是两个时间点之间相差天数,如果要精确时间,修改NSDateFormatter的形式,并把两个时间对应调整就行
- - (NSString *)distanceTimeWithBeforeTime:(double)beTime
- {
- NSTimeInterval now = [[NSDatedate]timeIntervalSince1970];
- double distanceTime = now - beTime;
- NSString * distanceStr;
- NSDate * beDate = [NSDatedateWithTimeIntervalSince1970:beTime];
- NSDateFormatter * df = [[NSDateFormatteralloc]init];
- [df setDateFormat:@"HH:mm"];
- NSString * timeStr = [df stringFromDate:beDate];
- [df setDateFormat:@"dd"];
- NSString * nowDay = [df stringFromDate:[NSDate date]];
- NSString * lastDay = [df stringFromDate:beDate];
- if (distanceTime < 60) {//小于一分钟
- distanceStr = @"刚刚";
- }
- else if (distanceTime <60*60) {//时间小于一个小时
- distanceStr = [NSString stringWithFormat:@"%ld分钟前",(long)distanceTime/60];
- }
- else if(distanceTime <24*60*60 && [nowDayintegerValue] == [lastDay integerValue]){//时间小于一天
- distanceStr = [NSString stringWithFormat:@"今天 %@",timeStr];
- }
- else if(distanceTime<24*60*60*2 && [nowDayintegerValue] != [lastDay integerValue]){
- if ([nowDay integerValue] - [lastDay integerValue] ==1 || ([lastDay integerValue] - [nowDayintegerValue] > 10 && [nowDayintegerValue] == 1)) {
- distanceStr = [NSString stringWithFormat:@"昨天 %@",timeStr];
- }
- else{
- [df setDateFormat:@"MM-dd HH:mm"];
- distanceStr = [df stringFromDate:beDate];
- }
- }
- else if(distanceTime <24*60*60*365){
- [df setDateFormat:@"MM-dd HH:mm"];
- distanceStr = [df stringFromDate:beDate];
- }
- else{
- [df setDateFormat:@"yyyy-MM-dd HH:mm"];
- distanceStr = [df stringFromDate:beDate];
- }
- return distanceStr;
- }
来源:CSDN
作者:极客Victor
链接:https://blog.csdn.net/yuanpeng1014/article/details/52311081