It is possible to find out when a Windows registry key was last modified with the following function:
import datetime
import time
import winreg
def query_info_key(key):
return datetime.datetime(1601, 1, 1) + datetime.timedelta(
0,
-(time.altzone if time.localtime().tm_isdst else time.timezone),
winreg.QueryInfoKey(key)[2] / 10
)
Is there a way this could be written to avoid referencing the time
module?
Yes, you only need to use the datetime
module and can avoid your your extra import like so:
import datetime
import winreg
def query_info_key(key):
return datetime.datetime(1601, 1, 1) + \
datetime.timedelta(microseconds=winreg.QueryInfoKey(key)[2] / 10) + \
datetime.datetime.now(datetime.timezone.utc).astimezone().utcoffset()
Alternatively, you can still improve your original code if time
is allowed to be an import:
import datetime
import time
import winreg
def query_info_key(key):
return datetime.datetime(1601, 1, 1) + datetime.timedelta(
0,
time.localtime().tm_gmtoff,
winreg.QueryInfoKey(key)[2] / 10
)