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