吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2500|回复: 8
收起左侧

[Python 转载] python 快速修改日期,带恢复功能,已打包exe

  [复制链接]
wkdxz 发表于 2022-9-7 17:31
本帖最后由 wkdxz 于 2022-9-7 17:38 编辑

因工作需要,会经常用到日期修改功能,把日期往前或往后调几天。
最近在学PySimpleGUI,所以做了个小工具来实现日期修改和恢复功能。
点击修改按钮:后弹出日期选择框,选择了日期后,电脑日期会被改为选择的日期。同时,会关闭自动设置时间的开关。
点恢复按钮:会获取网络时间,并将电脑日期和时间设置为网络时间。同时,会打开自动设置时间的开关。
如果你的电脑时间日期会错乱,比如BIOS掉电,日期显示错误时,可以直接点恢复按钮,修复电脑的时间和日期,与网络时间有一丢丢延时,普通用户可以忽略。



软件界面.jpg


界面2.jpg



3.jpg

日期工具成品.exe  https://www.aliyundrive.com/s/VCeRqVdUx4h 提取码: iw54
源码下载: 日期工具源码.zip (1.21 KB, 下载次数: 35)

[Python] 纯文本查看 复制代码
pip install PySimpleGUI  #第三方库


源码:为了省事,代码内直接使用了cmd命令来操作注册表和修改时间日期,没有使用三方库

[Python] 纯文本查看 复制代码
from datetime import datetime
from urllib.request import urlopen
import PySimpleGUI as sg
import os, ssl, time

ssl._create_default_https_context = ssl._create_unverified_context


def gmtstr_to_localtime(gmtstr) -> datetime:
    return datetime.strptime(gmtstr, "%a, %d %b %Y %H:%M:%S GMT")


def datetime_from_utc_to_local(utc_datetime):
    now_timestamp = time.time()
    offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(
        now_timestamp)
    return utc_datetime + offset


def get_network_time():
    url = "https://www.baidu.com"  #随便一个可用的网址都可以
    try:
        with urlopen(url) as res:
            utctime = gmtstr_to_localtime(res.getheader("Date"))
            return datetime_from_utc_to_local(utctime)
    except Exception as e:
        print(f"联网失败:{str(e)}")


def reg_sync(sync=True):  #通过注册表空值“自动设置时间”的开关
    key = 'NTP' if sync else 'NoSync'
    cmd = f'reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\Parameters /v type /t reg_sz /d {key} /f'
    os.system(cmd)


def change_date(date_time):
    reg_sync(False)  #禁止时间自动同步
    DATE = date_time.split()[0]
    os.system(f'echo {DATE}|date')


def recover_date():  #恢复正确时间,通过网络时间设置
    reg_sync(True)
    now = str(get_network_time())
    DATE, TIME = now.split()
    os.system(f'echo {TIME}|time')
    os.system(f'echo {DATE}|date')


def gui():
    layout = [[
        sg.CalendarButton('点击修改日期', key='修改', enable_events=True),
    ], [sg.B('恢复正确时间', key='恢复',button_color='green')]]
    window = sg.Window('日期工具', layout, font=('微软雅黑', 12))
    while True:
        event, values = window.read()
        if not event:
            break
        if event == '修改':
            change_date(values['修改'])
            break
        elif event == '恢复':
            recover_date()
            break

    window.close()


if __name__ == '__main__':
    gui()

免费评分

参与人数 3吾爱币 +7 热心值 +2 收起 理由
peng0949 + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
asdf1233124 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wkdxz 发表于 2022-9-7 17:49
rhci 发表于 2022-9-7 17:39
这个可以有,就是需要网络。还是手机比对的

嗯,恢复需要网络支持,网络获取省事点。
rhci 发表于 2022-9-7 17:39
godsoncai 发表于 2022-9-7 18:10
luxingyu329 发表于 2022-9-7 18:18
这个不错,界面挺好,我也想学学,tkinter太麻烦了
studentguo 发表于 2022-9-7 19:22
学习。。。。。。
likaiaixuexi 发表于 2022-9-7 19:35
这个还可以,老的主板经常掉电,系统时间对不上
emptynullnill 发表于 2022-9-7 21:51
就是一键脚本,打包成exe?
yyx5670 发表于 2022-11-17 16:42
看看,学习下代码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 21:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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