项目中需要用到时间戳,综合了下有以下三种:
1,获取手机当前时间,该方法在用户更改手机当前时间后会导致连接失效
2 ,[NSProcessInfo processInfo] systemUptime]获取系统开机时间,不过该时间经过测试,不准确,运行较快
3,项目中采用第3种,用c语言写
先导入头文件#include <sys/sysctl.h>
//获取差距时间
+ (time_t)uptime
{
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
time_t now;
time_t uptime = -1;
(void)time(&now);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
{
uptime = now - boottime.tv_sec;
}
return uptime;
}
网友评论