如何利用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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
python解析xml模块封装代码
Feb 07 Python
Python用Bottle轻量级框架进行Web开发
Jun 08 Python
python运行时间的几种方法
Jun 17 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
python调用c++传递数组的实例
Feb 13 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
django创建css文件夹的具体方法
Jul 31 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 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设计模式之命令模式的深入解析
2013/06/13 PHP
php目录操作实例代码
2014/02/21 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JSON与JS对象的区别与对比
2017/03/01 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
简单介绍Python中的round()方法
2015/05/15 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python决策树之CART分类回归树详解
2017/12/20 Python
python实现百度语音识别api
2018/04/10 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
Python基于execjs运行js过程解析
2020/11/27 Python
成人大专生实习期的自我评价
2013/10/02 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
员工保密协议书
2014/09/27 职场文书
安全生产标语大全
2014/10/06 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python