判断服务器返回时间和本地时间的大小

2016-11-20  本文已影响18人  我的马里奥兄弟

实现逻辑:两个时间差相差超出5分钟,返回NO;反之,返回YES

注意点:

      1.通过[NSDate date]获取的时间是格林尼治时间,所以还需要换算成本地时间

      2.通过某种格式的字符串获取得到的Date也是格林尼治标准

代码如下:

- (BOOL)compareLocalTimeWithStartTimeToData:(NSDictionary *)data{

NSDate *date = [NSDate date];

NSLog(@"NSDate:%@",date);

NSTimeInterval time = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:date];// 以秒为单位返回当前时间与系统格林尼治时间的差

NSDate *dateNow = [date dateByAddingTimeInterval:time];// 然后把差的时间加上,就是当前系统准确的时间

NSLog(@"Now_time:%@",dateNow);

NSDate *startT = [NSDate dateFromString:data[@"StartTime"] format:@"yyyy-MM-dd HH:mm:ss"];

NSDate *startT_repaired = [startT dateByAddingTimeInterval:time];

NSLog(@"\n\n\n  Start_time:%@\n  StartT_repaired:%@\n\n",startT,startT_repaired);

NSTimeInterval interval = [dateNow timeIntervalSinceDate:startT_repaired];

NSLog(@"%f",interval);

if (interval<=300) {

return YES;

}else return NO;

}

上一篇 下一篇

猜你喜欢

热点阅读