实现逻辑:两个时间差相差超出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;
}
网友评论