在开发的过程中,我们经常会使用的系统时间,但是手机的系统时间用户可以自行改变,在这个基础上获取到的时间就不准确了。
那么这个时候我们可以通过获取服务器的时间来校准本地时间。
在应用启动的时候获取服务器当前的时间+在加上该时间段内应用的运行时间。
获取服务器的时间保存,并记录该进程当前的运行时间
-(void)setOriginTime:(NSTimeInterval)servertime {
_originServerTime = servertime;
NSDate *serverDate = [NSDate dateWithTimeIntervalSince1970:(_originServerTime)/1000];
NSLog(@"srever_ %@",serverDate);
_originStartTime = [[NSProcessInfo processInfo]systemUptime] * 1000;
NSLog(@"_________originTime %f, %f",_originServerTime, _originStartTime);
}
每次需要用到的时间的时候:
用之前获取到的服务器时间+当前进程的运行时间
-(long long)serverDate{
NSTimeInterval outtime = [[NSProcessInfo processInfo]systemUptime] * 1000 -_originStartTime;
NSDate *serverDate = [NSDate dateWithTimeIntervalSince1970:(_originServerTime + outtime)/1000];
NSLog(@"srever_ %@",serverDate);
long long time = [serverDate timeIntervalSince1970] * 1000;
NSLog(@"srever_time %lld",time);
return time;
}