使用Python制作时间戳转换工具
作者原话:
作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进行格式化,或者查询时间戳。这个方式也是我之前的使用方式,此种方式不足之处如下: 1.每次打开过程步骤繁琐,即使收藏了也要先打开浏览器,然后点击 2.如果打开的浏览器标签足够多的话,根本找不到(就是说的我这样的人) 3.等 后来我发现了hijson这个工具可以本地格式化json后,一直想找一个本地查找时间戳的小工具。奈何互联网大神们没有满足我的需求。于是我决定自己写一个。
本文的环境
•python 3.6
•time 库
•tkinter 库
可选:可以使用pyinstaller打包成exe文件运行。程序大小大约8m,运行时内存占用15m左右。
pyinstaller的安装和使用
pip install pyinsatller
安装后直接运行一下如下命令
pyinstaller
如果能运行会提示选项
如果没有安装成功,请参考官方介绍:
https://pypi.org/project/PyInstaller/
https://pyinstaller.readthedocs.io/en/stable/installation.html
打包文件
打包的命令(在命令行中运行,如果不成功记得配置好环境变量)
pyinsatller -F -w D:\python\timeTransverter.py
选项介绍
#-F, –onefile 产生一个文件用于部署 (参见XXXXX).
#-w, –windowed, –noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
#就是不会显示一个黑窗口(太丑了,还要手动去关闭)如果不知道什么意思,可以自己去试试
生成成功后提示中会有一条INFO: Appending archive to EXE C:\Users\XXX\dist\timeTransverter.exe,里面放着你想要的exe文件。
timeTransverter源文件
from tkinter import * from time import * import win32clipboard as wincld import win32con ''' 1、这个程序实现时间戳和日期格式的相互转换。 2、使用grid方法按照表格方式对组件位置进行安排 3、通过Button按钮进行转换和刷新操作。 4、通过Entry来获取用户输入。 ''' class timeTransverter: def __init__(self): self.tk = Tk() self.tk.title('时间戳转换') self.tk.resizable(0,0)#禁止拉伸 self.ts1 = StringVar() self.date1 = StringVar() self.ts2 = StringVar() self.date2 = StringVar() self.initData() # self.timeToDateButton = '' # self.dateToTimeButton = '' # self.copyButton = '' # self.pasteButton = '' # self.exitButton = '' self.e3 = Entry(self.tk, textvariable=self.date2) # Entry 是 Tkinter 用来接收字符串等输入的控件. self.e4 = Entry(self.tk, textvariable=self.ts2) self.e1 = Entry(self.tk, textvariable=self.ts1) # Entry 是 Tkinter 用来接收字符串等输入的控件. self.e2 = Entry(self.tk, textvariable=self.date1) # 设置窗口初始显示位置 sw = self.tk.winfo_screenwidth() sh = self.tk.winfo_screenheight() x = (sw) / 2 y = (sh) / 2 self.tk.geometry("+%d+%d" % (x, y)) def initData(self): # 对数据进行初始化 self.ts1.set(int(time())) # 对数据进行初始化 timeArray1 = localtime(int(time())) self.date2.set(strftime("%Y-%m-%d %H:%M:%S", timeArray1)) self.ts2.set(int(time())) def run(self): self.drawStampToDate() self.drawDateToStamp() self.drawButtons() self.tk.mainloop() def drawStampToDate(self): stampLabel = Label(self.tk, text = '时间戳') dateLabel = Label(self.tk, text = '日期') stampLabel.grid(row=0,column=0); dateLabel.grid(row=1,column=0); self.e1.grid(row=0, column=1, columnspan=2, padx=20, pady=5) # 设置输入框显示的位置,以及长和宽属性 self.e2.grid(row=1, column=1, columnspan=2, padx=20, pady=5) #调用转换功能 self.stampToDate() def drawDateToStamp(self): dateLabel = Label(self.tk, text='日期:').grid(row=3, column=0) stampLabel = Label(self.tk, text='时间戳:').grid(row=4, column=0) self.e3.grid(row=3, column=1, columnspan=2, padx=20, pady=5) # 设置输入框显示的位置,以及长和宽属性 self.e4.grid(row=4, column=1, columnspan=2, padx=20, pady=5) #调用转换功能 self.dateToStamp() def drawButtons(self): Button(self.tk, text='转换', width=8, command=self.stampToDate) \ .grid(row=2, column=0, sticky=W, padx=8, pady=5) Button(self.tk, text=' 粘贴时间戳 ', width=8, command=self.paste) \ .grid(row=2, column=2, sticky=W, padx=8, pady=5) Button(self.tk, text='转换', width=8, command=self.dateToStamp) \ .grid(row=5, column=0, sticky=W, padx=8, pady=5) Button(self.tk, text='刷新', width=8, command=self.refresh) \ .grid(row=5, column=1, sticky=W, padx=8, pady=5) Button(self.tk, text=' 复制时间戳 ', width=8, command=self.copy) \ .grid(row=5, column=2, sticky=W, padx=8, pady=5) Button(self.tk, text='退出', width=8, command=self.tk.quit) \ .grid(row=6, column=2, sticky=W, padx=8, pady=5) def stampToDate(self): timeArray = localtime(int(self.ts1.get())) self.date1.set(strftime("%Y-%m-%d %H:%M:%S", timeArray)) def dateToStamp(self): self.ts2.set(int(mktime(strptime(self.e3.get(), "%Y-%m-%d %H:%M:%S")))) def refresh(self): timeArray1 = localtime(int(time())) self.date2.set(strftime("%Y-%m-%d %H:%M:%S", timeArray1)) self.ts2.set(int(time())) # 复制时间戳 def copy(self): wincld.OpenClipboard() wincld.EmptyClipboard() wincld.SetClipboardData(win32con.CF_UNICODETEXT, self.e4.get()) wincld.CloseClipboard() # 粘贴时间戳 def paste(self): wincld.OpenClipboard() text_result = wincld.GetClipboardData(win32con.CF_UNICODETEXT) wincld.CloseClipboard() self.ts1.set(int(text_result)) t = timeTransverter() t.run()
作者Github地址:https://github.com/VinterHe/timeTransverter
评论
评论关闭