前言:
時(shí)間戳的定義
Unix時(shí)間戳(Unix時(shí)間戳)或稱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),類Unix的系統(tǒng)中,也在許多其他操作系統(tǒng)中被廣泛采用。多數(shù)的Unix系統(tǒng)將時(shí)間戳以一個(gè)32位整型進(jìn)行保存,這可能會(huì)在2038年1月19日產(chǎn)生一些問題(Y2038問題)。
作為一個(gè)程序員一般情況下,json和時(shí)間戳是常用的兩個(gè)工具,我咨詢過很多個(gè)朋友,他們一般都是通過在線工具對(duì)json進(jìn)行格式化,或者查詢時(shí)間戳。這個(gè)方式也是我之前的使用方式,此種方式不足之處如下:
1.每次打開過程步驟繁瑣,即使收藏了也要先打開瀏覽器,然后點(diǎn)擊
2.如果打開的瀏覽器標(biāo)簽足夠多的話,根本找不到(就是說(shuō)的我這樣的人)
3.等
后來(lái)我發(fā)現(xiàn)了hijson這個(gè)工具可以本地格式化json后,一直想找一個(gè)本地查找時(shí)間戳的小工具。奈何互聯(lián)網(wǎng)大神們沒有滿足我的需求。于是我決定自己寫一個(gè)。
本文的環(huán)境
可選:可以使用pyinstaller打包成exe文件運(yùn)行。程序大小大約8m,運(yùn)行時(shí)內(nèi)存占用15m左右。
先貼代碼(因?yàn)闀r(shí)間有限,沒有寫的太工整,見諒):
from tkinter import *from time import *'''1、這個(gè)程序?qū)崿F(xiàn)時(shí)間戳和日期格式的相互轉(zhuǎn)換。2、使用grid方法按照表格方式對(duì)組件位置進(jìn)行安排3、通過Button按鈕進(jìn)行轉(zhuǎn)換和刷新操作。4、通過Entry來(lái)獲取用戶輸入。'''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) / 2y = (sh) / 2root.geometry("+%d+%d" %(x,y))mainloop()
新聞熱點(diǎn)
疑難解答
圖片精選