如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解
前言:
時(shí)間戳的定義
Unix時(shí)間戳(Unix時(shí)間戳)或稱(chēng)Unix時(shí)間(Unix時(shí)間),POSIX時(shí)間(POSIX時(shí)間),是一種時(shí)間表示方式,定義為從格林威治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù).Unix時(shí)間戳不僅被使用在Unix的系統(tǒng),類(lèi)Unix的系統(tǒng)中,也在許多其他操作系統(tǒng)中被廣泛采用。多數(shù)的Unix系統(tǒng)將時(shí)間戳以一個(gè)32位整型進(jìn)行保存,這可能會(huì)在2038年1月19日產(chǎn)生一些問(wèn)題(Y2038問(wèn)題)。
作為一個(gè)程序員一般情況下,json和時(shí)間戳是常用的兩個(gè)工具,我咨詢(xún)過(guò)很多個(gè)朋友,他們一般都是通過(guò)在線(xiàn)工具對(duì)json進(jìn)行格式化,或者查詢(xún)時(shí)間戳。這個(gè)方式也是我之前的使用方式,此種方式不足之處如下:
1.每次打開(kāi)過(guò)程步驟繁瑣,即使收藏了也要先打開(kāi)瀏覽器,然后點(diǎn)擊
2.如果打開(kāi)的瀏覽器標(biāo)簽足夠多的話(huà),根本找不到(就是說(shuō)的我這樣的人)
3.等
后來(lái)我發(fā)現(xiàn)了hijson這個(gè)工具可以本地格式化json后,一直想找一個(gè)本地查找時(shí)間戳的小工具。奈何互聯(lián)網(wǎng)大神們沒(méi)有滿(mǎn)足我的需求。于是我決定自己寫(xiě)一個(gè)。
本文的環(huán)境
- python 3.6
- time 庫(kù)
- tkinter 庫(kù)
可選:可以使用pyinstaller打包成exe文件運(yùn)行。程序大小大約8m,運(yùn)行時(shí)內(nèi)存占用15m左右。
先貼代碼(因?yàn)闀r(shí)間有限,沒(méi)有寫(xiě)的太工整,見(jiàn)諒):
from tkinter import *
from time import *
'''
1、這個(gè)程序?qū)崿F(xiàn)時(shí)間戳和日期格式的相互轉(zhuǎn)換。
2、使用grid方法按照表格方式對(duì)組件位置進(jìn)行安排
3、通過(guò)Button按鈕進(jìn)行轉(zhuǎn)換和刷新操作。
4、通過(guò)Entry來(lái)獲取用戶(hù)輸入。
'''
root = Tk()
root.title('時(shí)間戳轉(zhuǎn)換')
root.resizable(0,0)#禁止拉伸 會(huì)變丑
# 對(duì)變量進(jìn)行創(chuàng)建,和數(shù)據(jù)初始化
Label1 = Label(root, text='時(shí)間戳:').grid(row=0, column=0)
Label2 = Label(root, text='日期:').grid(row=1, column=0)
v1 = StringVar()
p1 = StringVar()
v1.set(int(time()))
Label3 = Label(root, text='日期:').grid(row=3, column=0)
Label4 = Label(root, text='時(shí)間戳').grid(row=4, column=0)
v2 = StringVar()
p2 = StringVar()
timeArray1 = localtime(int(time()))
v2.set(strftime("%Y-%m-%d %H:%M:%S", timeArray1))
p2.set(int(time()))
#時(shí)間戳轉(zhuǎn)換成日期
def trans1():
e1 = Entry(root, textvariable=v1) # Entry 是 Tkinter 用來(lái)接收字符串等輸入的控件.
e2 = Entry(root, textvariable=p1)
e1.grid(row=0, column=1, padx=10, pady=5) # 設(shè)置輸入框顯示的位置,以及長(zhǎng)和寬屬性
e2.grid(row=1, column=1, padx=10, pady=5)
timeArray = localtime(int(e1.get()))
p1.set(strftime("%Y-%m-%d %H:%M:%S", timeArray))
#日期轉(zhuǎn)換為時(shí)間戳
def trans2():
e3 = Entry(root, textvariable=v2) # Entry 是 Tkinter 用來(lái)接收字符串等輸入的控件.
e4 = Entry(root, textvariable=p2)
e3.grid(row=3, column=1, padx=10, pady=5) # 設(shè)置輸入框顯示的位置,以及長(zhǎng)和寬屬性
e4.grid(row=4, column=1, padx=10, pady=5)
p2.set(int(mktime(strptime(e3.get(), "%Y-%m-%d %H:%M:%S"))))
#刷新第二個(gè)模組
def refresh():
timeArray1 = localtime(int(time()))
v2.set(strftime("%Y-%m-%d %H:%M:%S", timeArray1))
p2.set(int(time()))
Button(root, text='轉(zhuǎn)換', width=10, command=trans1) \
.grid(row=2, column=0, sticky=W, padx=10, pady=5)
Button(root, text='轉(zhuǎn)換', width=10, command=trans2) \
.grid(row=5, column=0, sticky=W, padx=10, pady=5)
Button(root, text='刷新', width=10, command=refresh) \
.grid(row=5, column=1, sticky=W, padx=10, pady=5)
Button(root, text='退出', width=10, command=root.quit) \
.grid(row=6, column=1, sticky=E, padx=10, pady=5)
trans1()
trans2()
#設(shè)置窗口初始顯示位置
sw = root.winfo_screenwidth()
sh = root.winfo_screenheight()
x = (sw) / 2
y = (sh) / 2
root.geometry("+%d+%d" %(x,y))
mainloop()
我一直信奉代碼寫(xiě)的足夠好不需要額外的太多解釋。請(qǐng)看上面代碼中的注釋
pyinstaller的安裝和使用
安裝
pip install pyinsatller #安裝直接運(yùn)行一下如下命令 pyinstaller #如果能運(yùn)行會(huì)提示選項(xiàng)
打包文件
#打包的命令(在命令行中運(yùn)行,如果不成功記得配置好環(huán)境變量) pyinsatller -F -w D:\python\timeTran.py #選項(xiàng)介紹 #-F –onefile 產(chǎn)生一個(gè)文件用于部署 (參見(jiàn)XXXXX). #-w,–windowed,–noconsole 使用Windows子系統(tǒng)執(zhí)行.當(dāng)程序啟動(dòng)的時(shí)候不會(huì)打開(kāi)命令行(只對(duì)Windows有效) 就是不會(huì)顯示一個(gè)黑窗口(太丑了,還要手動(dòng)去關(guān)閉)如果不知道什么意思,可以自己去試試
github地址:https://github.com/VinterHe/timeTransverter (本地下載) 里面有打包好的exe文件可以直接拿去用
生成成功后提示中會(huì)有一條INFO: Appending archive to EXE C:\Users\XXX\dist\timeTransverter.exe,里面放著你想要的exe文件。歡迎大家轉(zhuǎn)載和使用,謝謝。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Python reversed反轉(zhuǎn)序列并生成可迭代對(duì)象
這篇文章主要介紹了Python reversed反轉(zhuǎn)序列并生成可迭代對(duì)象,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Linux上Miniconda的安裝的實(shí)現(xiàn)步驟
Miniconda是一個(gè)輕量級(jí)、免費(fèi)且開(kāi)源的跨平臺(tái)軟件包管理系統(tǒng),本文主要介紹了Linux上Miniconda的安裝的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Python 多線(xiàn)程C段掃描、檢測(cè) Ping掃描腳本的實(shí)現(xiàn)
這篇文章主要介紹了Python 多線(xiàn)程C段掃描、檢測(cè) Ping掃描腳本的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
pytorch 計(jì)算Parameter和FLOP的操作
這篇文章主要介紹了pytorch 計(jì)算Parameter和FLOP的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
ChatGPT 幫我自動(dòng)編寫(xiě) Python 爬蟲(chóng)腳本的詳細(xì)過(guò)程
ChatGPT是一種基于大語(yǔ)言模型的生成式AI,換句話(huà)說(shuō)它可以自動(dòng)生成類(lèi)似人類(lèi)語(yǔ)言的文本,把梳理好的有邏輯的答案呈現(xiàn)在你面前,這完全不同于傳統(tǒng)搜索工具,這篇文章主要介紹了ChatGPT 幫我自動(dòng)編寫(xiě) Python 爬蟲(chóng)腳本,需要的朋友可以參考下2023-02-02
python中如何實(shí)現(xiàn)徑向基核函數(shù)
這篇文章主要介紹了python中如何實(shí)現(xiàn)徑向基核函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼
本文主要介紹了Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

