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


Posted in Python onSeptember 12, 2018

前言:

时间戳的定义

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文件。欢迎大家转载和使用,谢谢。

总结

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

Python 相关文章推荐
Python安装第三方库的3种方法
Jun 21 Python
Python中的__slots__示例详解
Jul 06 Python
TensorFlow的权值更新方法
Jun 14 Python
Python for循环中的陷阱详解
Jul 13 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
使用python实现名片管理系统
Jun 18 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 Python
Python xlwings插入Excel图片的实现方法
Feb 26 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
Python get获取页面cookie代码实例
Sep 12 #Python
python读取和保存图片5种方法对比
Sep 12 #Python
python3 拼接字符串的7种方法
Sep 12 #Python
python简单操作excle的方法
Sep 12 #Python
使用python实现快速搭建简易的FTP服务器
Sep 12 #Python
python ftp 按目录结构上传下载的实现代码
Sep 12 #Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 #Python
You might like
PHP的历史和优缺点
2006/10/09 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
无工作经验者个人求职信范文
2013/12/22 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
新店开张活动方案
2014/08/24 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
大专护理专业自荐信
2015/03/25 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
mysql数据库隔离级别详解
2022/06/16 MySQL
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL