找回密码
 立即注册
搜索
查看: 46|回复: 0

基于NTP协议的Windows系统时间同步

[复制链接]

52

主题

0

回帖

228

积分

管理员

积分
228
发表于 2025-8-6 16:25:41 | 显示全部楼层 |阅读模式
import os
import sys
import ctypes
from ntplib import NTPClient
from datetime import datetime

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        returnFalse

def sync_time():
    try:
        client = NTPClient()
        response = client.request('ntp.aliyun.com', version=3)
        ntp_time = datetime.fromtimestamp(response.tx_time)

        # 转换为本地时间字符串
        local_time = ntp_time.strftime("%Y-%m-%d %H:%M:%S")
        date_str, time_str = local_time.split(" ")

        # 使用系统命令设置时间(需要管理员权限)
        os.system(f'date {date_str}')
        os.system(f'time {time_str}')

        print(f"时间已同步到阿里NTP服务器时间: {local_time}")
    except Exception as e:
        print(f"同步失败: {str(e)}")
        sys.exit(1)

if __name__ == "__main__":
    if not is_admin():
        ctypes.windll.shell32.ShellExecuteW(
            None, "runas", sys.executable, __file__, None, 1
        )
        sys.exit()
   
    sync_time()
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

SKYPIEA

GMT+8, 2025-9-7 13:47 , Processed in 0.043289 second(s), 19 queries .

快速回复 返回顶部 返回列表