使用的是系统的这个类:NSProcessInfo
NSProcessInfo用于获取当前正在执行的进程信息,包括设备的名称,操作系统版本,进程等信息的,具体大家可以点进去看这个类有什么变量和方法。
下面就是取得开机时间的方法:
//获取系统开机累计时间
NSProcessInfo *info = [NSProcessInfo processInfo];
NSLog(@"%f", info.systemUptime);
NSDate *now = [NSDate date];
NSTimeInterval interval = [now timeIntervalSince1970];
NSLog(@"start time: %@", [AppDelegate getDateStrFromTimeStep:interval - info.systemUptime]);
再写一个转换时间的函数,因为要解决时区的问题,不然显示的时间会有时区差别。
+(NSString *)getDateStrFromTimeStep:(long long)timestep{
NSDate *timestepDate = [NSDate dateWithTimeIntervalSince1970:timestep];
//1377044552->2013-08-21 08:22:32
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
NSTimeZone* timeZone = [NSTimeZone systemTimeZone];
[formatter setTimeZone:timeZone];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [formatter stringFromDate:timestepDate];
}