【问题标题】:Getting the time component from winreg.QueryInfoKey从 winreg.QueryInfoKey 获取时间组件
【发布时间】:2019-02-26 20:14:41
【问题描述】:

可以使用以下函数查明 Windows 注册表项的最后修改时间:

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
    )

有没有办法可以避免引用time 模块?

【问题讨论】:

    标签: python-3.x datetime python-import timezone-offset winreg


    【解决方案1】:

    是的,您只需要使用datetime 模块,就可以避免您的额外导入:

    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()
    

    或者,如果time 被允许作为导入,您仍然可以改进您的原始代码:

    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
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2012-04-08
      相关资源
      最近更新 更多