我们首先使用NSDate来创建两个时间,将两个时间都格式化.转换为字符串格式:
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];//设定时间格式,这里可以设置成自己需要的格式
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"America/NewYork"];//此处是设置时区为纽约时区.默认时区为手机设置时区
[dateFormat setTimeZone:timeZone];
NSDate * transformationDate =[NSDate date];
NSString * currentDateStr = [dateFormat stringFromDate:transformationDate];
NSDateFormatter* dateFormat1 = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
[dateFormat1 setDateFormat:@"yyyy-MM-dd HH:mm"];//设定时间格式,这里可以设置成自己需要的格式
NSDate * nowdate =[NSDate date];
NSString * currentDateStr1 = [dateFormat1 stringFromDate:nowdate];
然后我们创建一个方法根据两个时间字符串来返回之间的时间差:
- (NSTimeInterval)intervalFromLastDate: (NSString *)dateString1 toTheDate:(NSString *) dateString2
{
NSArray *timeArray1=[dateString1 componentsSeparatedByString:@"."];
dateString1=[timeArray1 objectAtIndex:0];
NSArray *timeArray2=[dateString2 componentsSeparatedByString:@"."];
dateString2=[timeArray2 objectAtIndex:0];
NSDateFormatter *date=[[NSDateFormatter alloc] init];
[date setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate * date1 =[date dateFromString:dateString1];
NSTimeInterval late1=[date1 timeIntervalSince1970]*1;
NSDate * date2=[date dateFromString:dateString2];
NSTimeInterval late2=[date2 timeIntervalSince1970]*1;
NSTimeInterval tdoa = late2 - late1;
return tdoa;
}
之后调用计算时间差的方法就可以获取到时间差啦:
NSTimeInterval toda =[self intervalFromLastDate:currentDateStr toTheDate:currentDateStr1];//得到的时间差为秒数