Python 在Windows 10中获得启动时间并不意味着';不要总是在同一时间给予

Python 在Windows 10中获得启动时间并不意味着';不要总是在同一时间给予,python,windows,winapi,Python,Windows,Winapi,我使用这个python(3.5)代码来检查windows启动时间,但它给我的时间与使用shell命令“systeminfo”得到的时间不同 系统信息:9:15:23 python代码:9:14:42 对此并不满意,python代码本身给出了不同的时间! 它开始给我9:14:42,现在给我9:15:19,它每10秒左右增加一秒启动时间 我给你密码: import datetime import win32api s = win32api.GetTickCount() t = datetime

我使用这个python(3.5)代码来检查windows启动时间,但它给我的时间与使用shell命令“systeminfo”得到的时间不同

  • 系统信息:9:15:23
  • python代码:9:14:42
对此并不满意,python代码本身给出了不同的时间! 它开始给我9:14:42,现在给我9:15:19,它每10秒左右增加一秒启动时间

我给你密码:

import datetime
import win32api

s = win32api.GetTickCount()
t = datetime.datetime.now()
st = datetime.timedelta(milliseconds=s)
bt = t-st
boot = "Boot time was around {}:{}:{}".format(bt.hour, bt.minute, bt.second)
print(boot)
我开始考虑从python调用systeminfo命令,并显示它给我的时间。

取自和

GetTickCount
不报告启动时间。为了得到你应该使用的


GetTickCount不报告启动时间。为了使用WMI:我一直在阅读有关WMI的文章,现在我得到了相同的时间,只是有几次它比systeminfo给出的时间提前了一秒,但这应该是因为不可能在同一秒(或毫秒)上获取时间戳,它或多或少会在这一秒中显示出来,但这是可以接受的。编辑:(不能按Enter键表示感谢…)谢谢@FDZ工作区答案不应出现在问题中。如果你想出了一个不同的解决方案,那么你应该把它作为自己的答案发布。
import datetime
import wmi

wmiob = wmi.WMI()
sdata = wmiob.Win32_PerfFormattedData_PerfOS_System()
uptime = sdata[-1].SystemUpTime
tnow = datetime.datetime.now()
utime = datetime.timedelta(seconds=int(uptime))
boot = tnow-utime
bootime = "Boot time was around {}:{}:{}".format(boot.hour, boot.minute, boot.second)
print(bootime)