如何利用python制作时间戳转换工具详解

前言:

时间戳的定义

Unix时间戳(Unix时间戳)或称Unix时间(Unix时间),POSIX时间(POSIX时间),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数.Unix时间戳不仅被使用在Unix的系统,类Unix的系统中,也在许多其他操作系统中被广泛采用。多数的Unix系统将时间戳以一个32位整型进行保存,这可能会在2038年1月19日产生一些问题(Y2038问题)。

作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进行格式化,或者查询时间戳。这个方式也是我之前的使用方式,此种方式不足之处如下:

1.每次打开过程步骤繁琐,即使收藏了也要先打开浏览器,然后点击

2.如果打开的浏览器标签足够多的话,根本找不到(就是说的我这样的人)

3.等

后来我发现了hijson这个工具可以本地格式化json后,一直想找一个本地查找时间戳的小工具。奈何互联网大神们没有满足我的需求。于是我决定自己写一个。

本文的环境

  • python 3.6
  • time 库
  • tkinter 库

可选:可以使用pyinstaller打包成exe文件运行。程序大小大约8m,运行时内存占用15m左右。

先贴代码(因为时间有限,没有写的太工整,见谅):

from tkinter import *
from time import *

'''
1、这个程序实现时间戳和日期格式的相互转换。
2、使用grid方法按照表格方式对组件位置进行安排
3、通过Button按钮进行转换和刷新操作。
4、通过Entry来获取用户输入。
'''
root = Tk()
root.title('时间戳转换')
root.resizable(0,0)#禁止拉伸 会变丑
# 对变量进行创建,和数据初始化
Label1 = Label(root, text='时间戳:').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='时间戳').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()))
#时间戳转换成日期
def trans1():

 e1 = Entry(root, textvariable=v1) # Entry 是 Tkinter 用来接收字符串等输入的控件.
 e2 = Entry(root, textvariable=p1)
 e1.grid(row=0, column=1, padx=10, pady=5) # 设置输入框显示的位置,以及长和宽属性
 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))
#日期转换为时间戳
def trans2():
 e3 = Entry(root, textvariable=v2) # Entry 是 Tkinter 用来接收字符串等输入的控件.
 e4 = Entry(root, textvariable=p2)
 e3.grid(row=3, column=1, padx=10, pady=5) # 设置输入框显示的位置,以及长和宽属性
 e4.grid(row=4, column=1, padx=10, pady=5)
 p2.set(int(mktime(strptime(e3.get(), "%Y-%m-%d %H:%M:%S"))))
#刷新第二个模组
def refresh():
 timeArray1 = localtime(int(time()))
 v2.set(strftime("%Y-%m-%d %H:%M:%S", timeArray1))
 p2.set(int(time()))

Button(root, text='转换', width=10, command=trans1) \
 .grid(row=2, column=0, sticky=W, padx=10, pady=5)
Button(root, text='转换', 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()
#设置窗口初始显示位置
sw = root.winfo_screenwidth()
sh = root.winfo_screenheight()
x = (sw) / 2
y = (sh) / 2
root.geometry("+%d+%d" %(x,y))
mainloop()

我一直信奉代码写的足够好不需要额外的太多解释。请看上面代码中的注释

pyinstaller的安装和使用

安装

pip install pyinsatller

#安装直接运行一下如下命令
pyinstaller
#如果能运行会提示选项

打包文件

#打包的命令(在命令行中运行,如果不成功记得配置好环境变量)
pyinsatller -F -w D:\python\timeTran.py
#选项介绍
#-F –onefile 产生一个文件用于部署 (参见XXXXX).
#-w,–windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效) 就是不会显示一个黑窗口(太丑了,还要手动去关闭)如果不知道什么意思,可以自己去试试

github地址:https://github.com/VinterHe/timeTransverter (本地下载) 里面有打包好的exe文件可以直接拿去用
生成成功后提示中会有一条INFO: Appending archive to EXE C:\Users\XXX\dist\timeTransverter.exe,里面放着你想要的exe文件。欢迎大家转载和使用,谢谢。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • python正常时间和unix时间戳相互转换的方法

    本文实例讲述了python正常时间和unix时间戳相互转换的方法.分享给大家供大家参考.具体分析如下: 这段代码可以用来转换常规时间格式为unix时间戳,也可以将unix时间戳转换回来, 例如:1332888820 格式转换成 2012-03-28 06:53:40的形式 # -*- coding: utf-8 -*- import time def timestamp_datetime(value): format = '%Y-%m-%d %H:%M:%S' # value为传入的值为时间戳(

  • python 获取当天凌晨零点的时间戳方法

    最近写python,遇到了一个问题,需要获取当日凌晨零点的时间戳,网上实在没有找到,自己手写了一个,有点挫 # -*- coding:utf-8 -*- import time now_time = int(time.time()) day_time = now_time - now_time % 86400 + time.timezone day_time_str = time.asctime(time.localtime(day_time)) print day_time print day

  • Python获取昨天、今天、明天开始、结束时间戳的方法

    如下所示: #!/usr/bin/python # coding=utf-8 # import time import datetime # 今天日期 today = datetime.date.today() # 昨天时间 yesterday = today - datetime.timedelta(days=1) # 明天时间 tomorrow = today + datetime.timedelta(days=1) acquire = today + datetime.timedelta(

  • python 获取当天每个准点时间戳的实例

    实例如下所示: import time,datetime def gettime(): for x in range(24): a = datetime.datetime.now().strftime("%Y-%m-%d")+" %2d:00:00"%x timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") timeStamp = int(time.mktime(timeArray)) print(t

  • Python时间戳使用和相互转换详解

    本文实例为大家分享了Python时间戳使用和相互转换的具体代码,供大家参考,具体内容如下 1.将字符串的时间转换为时间戳 方法: import time a = "2013-10-10 23:40:00" # 将其转换为时间数组 timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") # 转换为时间戳 timeStamp = int(time.mktime(timeArray)) timeStamp == 13814196

  • Python 获得13位unix时间戳的方法

    在python 开发web程序时,需要调用第三方的相关接口,在调用时,需要对请求进行签名.需要用到unix时间戳. 在python里,在网上介绍的很多方法,得到的时间戳是10位.而java里默认是13位(milliseconds,毫秒级的). 下面介绍python获得时间戳的方法: 1.10时间戳获取方法: >>> import time >>> t = time.time() >>> print t 1436428326.76 >>>

  • Python时间戳与时间字符串互相转换实例代码

    复制代码 代码如下: #设a为字符串import timea = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1) #

  • python 时间戳与格式化时间的转化实现代码

    python 里面与时间有关的模块主要是 time 和 datetime 如果想获取系统当前时间戳:time.time() ,是一个float型的数据 获取系统当前的时间信息 : time.ctime() 是一个str类型的时间字符串,一般比较少用与开发中 如果想获得当前的普通日期字符串,可以简单的用str(datetime.date.today()) 还有就是时间和时间戳之间的相互转化(很常用): 日期到时间戳上的转换: import datetime import time t = date

  • python获取当前时间对应unix时间戳的方法

    本文实例讲述了python获取当前时间对应unix时间戳的方法.分享给大家供大家参考.具体分析如下: Unix timestamp:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 import datetime import time print time.mktime(datetime.datetime.now().timetuple()) 输出为: 1431674373.0 PS:这里再为大家推荐一个本站Unix时间戳转换工具,附带了各种语言下Unix时间戳的操作

  • python将MongoDB里的ObjectId转换为时间戳的方法

    本文实例讲述了python将MongoDB里的ObjectId转换为时间戳的方法.分享给大家供大家参考.具体分析如下: MongoDB里的_id字段前四位是时间戳的16进制表示,通过Python可以很容易从_id中提取出时间戳来 def timestamp_from_objectid(objectid): result = 0 try: result = time.mktime(objectid.generation_time.timetuple()) except: pass return r

随机推荐