如何利用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)文章
深入學(xué)習(xí)Python中的上下文管理器與else塊
這篇文章主要給大家介紹了關(guān)于Python中上下文管理器與else塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08vscode 與pycharm 配置 autopep8自動(dòng)格式化代碼
autopep8是一個(gè)可以將Python代碼自動(dòng)排版為PEP8風(fēng)格第三方包,使用它可以輕松地排版出格式優(yōu)美整齊的代碼,這里就為大家分享一下具體的方法2023-09-09如何利用Python寫(xiě)猜數(shù)字和字母的游戲
這篇文章主要介紹了如何利用Python寫(xiě)猜數(shù)字和字母的游戲,文章基于Python實(shí)現(xiàn)游戲小項(xiàng)目,感興趣的朋友可以參考一下2022-07-07python 獲取url中的參數(shù)列表實(shí)例
今天小編就為大家分享一篇python 獲取url中的參數(shù)列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12淺析Python語(yǔ)言自帶的數(shù)據(jù)結(jié)構(gòu)有哪些
Python已經(jīng)廣泛的應(yīng)用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等眾多科學(xué)計(jì)算領(lǐng)域,這篇文章主要介紹了Python語(yǔ)言自帶的數(shù)據(jù)結(jié)構(gòu)有哪些?需要的朋友可以參考下2019-08-08Python基礎(chǔ)之模塊相關(guān)知識(shí)總結(jié)
今天帶大家復(fù)習(xí)Python基礎(chǔ)知識(shí),文中對(duì)模塊相關(guān)知識(shí)介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Python并發(fā)編程實(shí)例教程之線(xiàn)程的玩法
編程的樂(lè)趣之一是想辦法讓程序執(zhí)行的越來(lái)越快,代碼越寫(xiě)越優(yōu)雅,這篇文章主要給大家介紹了關(guān)于Python并發(fā)編程實(shí)例教程之線(xiàn)程的相關(guān)資料,需要的朋友可以參考下2021-06-06離線(xiàn)部署Python環(huán)境的詳細(xì)過(guò)程
本文主要介紹了離線(xiàn)部署Python環(huán)境的全過(guò)程,包括前置工作、部署Python、測(cè)試Python、配置環(huán)境和驗(yàn)證Python五個(gè)步驟,為讀者提供了詳細(xì)的操作指南,希望能對(duì)需要離線(xiàn)部署Python環(huán)境的讀者提供幫助2024-10-10python實(shí)現(xiàn)定時(shí)同步本機(jī)與北京時(shí)間的方法
這篇文章主要介紹了python實(shí)現(xiàn)定時(shí)同步本機(jī)與北京時(shí)間的方法,涉及Python針對(duì)時(shí)間的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03