IOS 计算两个时区之间的时间差

来源:互联网 发布:java实例变量 编辑:程序博客网 时间:2024/05/18 00:14

我们首先使用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];//得到的时间差为秒数






3 0