Sublime Text3时间戳查看转换插件的开发
平常配置表中,经常需要用到时间配置,比如活动开始结束。从可读性上,我们喜欢2017-04-27 17:00:00,从程序角度,我们喜欢用1493283600。前者是包含时区概念的,而后者时区无关,所以一般推荐直接使用数字时间戳格式来配置。
实际配置时,之前一直用MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP函数,或者使用网页工具进行时间戳查看转换,十分繁琐。
做得多了,就想到为什么不写个插件,直接在编辑器里查看转换好了。参考了网络上的一些示例并查阅了Sublime的相关API,过程如下。
1.依次执行Tools -> Developer -> New Plugin,新建一个插件脚本,命名为timestamp.py
2.添加脚本代码,具体可以看注释:
from datetime import datetime
import re
import time
import sublime
import sublime_plugin
def getParseResult(text):
#patten1 匹配10位整数时间戳(1493283600)
pattern1 = re.compile('^\d{10}')
match1 = pattern1.match(text)
#pattern2 匹配可读时间格式(2017-04-27 17:00:00)
pattern2 = re.compile('^(\d{4})-(\d{1,2})-(\d{1,2})\s(\d{1,2}):(\d{1,2}):(\d{1,2})')
match2 = pattern2.match(text)
if text in ('now'):
result = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
elif text in ('ts', 'timestamp'):
result = str(time.time()).split('.')[0]
elif match1:
timestamp = int(match1.group(0))
timeArray = time.localtime(timestamp)
result = time.strftime('%Y-%m-%d %H:%M:%S', timeArray)
elif match2:
timeArray = time.strptime(text, "%Y-%m-%d %H:%M:%S")
result = str(time.mktime(timeArray)).split('.')[0]
return result
class TimestampCommand(sublime_plugin.TextCommand):
def run(self, edit):
for s in self.view.sel():
if s.empty() or s.size() <= 1:
break
# 只处理第一个Region
text = self.view.substr(s)
print(text)
# 得到转换结果
result = getParseResult(text)
# 进行文本替换并弹窗显示
self.view.replace(edit, s, result)
self.view.show_popup(result, sublime.HIDE_ON_MOUSE_MOVE_AWAY, -1, 600, 600)
break
3.进行快捷键绑定,依次执行Preferences -> Key Bindings,添加代码{ "keys": ["ctrl+t"], "command": "timestamp"}
很简单,一个方便查看转换时间戳的插件就写好了。选中文本,按快捷键CTRL+t,效果图:
代码放在了Github,更多欢迎访问个人网站Metazion
Sublime Text3时间戳查看转换插件的开发的更多相关文章
- Sublime Text3下的markdown插件的安装及配置
Sublime Text3下的markdown插件的安装及配置 安装准备--安装Package Control 安装MarkdownEditing 安装Markdown Preview或OmniMar ...
- Sublime Text3快捷键以及常用插件
工若善其事,必先利其器.做为一个web前端开发人员,必须有一个得心应手的编码工具,本人推荐Sublime Text3和WebStorm,但WebStorm太过智能和耗性能了对初学者来说弊大于利,所以我 ...
- sublime text3好用的插件
1.安装package control sublime text3 的安装方法,ctrl+`,调出控制台输入 import urllib.request,os; pf = 'Package Contr ...
- Sublime Text3使用及常用插件
1.安装packages组件: 参考一: https://sublime.wbond.net/installation 参考二: http://blog.csdn.net/superskk6/arti ...
- sublime text3 破解及常用插件
sublime text3 下载 破解 submelime Text > About sublime Text //看是否注册并 查看当前的版本 然后百度或google搜索 'sublime t ...
- sublime text3 安装package control 插件,解决访问被墙的问题
1.在github上下载Package Control的安装包 https://github.com/wbond/sublime_package_control 2.打开sublime存放插件的目录: ...
- Sublime Text3的快捷键和插件
今天重装了一下Sublime Text3,发现了一个不错的网站,关于Sublime Text3的插件安装介绍的很详细,还有右键增强菜单和浏览器打开快捷键的创建.奉上链接 http://www.cnbl ...
- Sublime Text3安装及常用插件安装
为了使用强大好用的代码编辑器来进行selenium3+Python3的自动化测试. 使用Sublime Text 3非常适合. 1.下载安装 首先到http://www.sublimetext.com ...
- mac电脑sublime text3安装pretty json插件
因http://packagecontrol.io/地址被墙无法实现自动安装,导致sublime Text3安装插件非常麻烦,总是出现There Are No Packages Available F ...
随机推荐
- SpringCloud的部署模型
http://www.th7.cn/Program/java/201608/919853.shtml
- servlet2.3/2.5/3.0/3.1的xml名称空间备忘
The web.xml is a configuration file to describe how a web application should be deployed. Here’re 5 ...
- Web 项目报错No suitable driver found for jdbc:mysql://localhost:3306/book 的一个解决办法
确认jar包加入到了build path中,然后注意版本是否与数据库相配,还要留意将jar包放入WEB-INF下的lib文件夹中
- 数据结构 Python实现
参考博客:浅谈算法和数据结构: 一 栈和队列 Python数据结构--栈.队列的实现(一) Python数据结构--栈.队列的实现(二) Python数据结构--链表的实现 数据结构 ...
- 极速下载百度网盘-吴水成老师的-dubbo课程
极速下载百度网盘-吴水成老师的-dubbo课程,极速下载百度网盘-吴水成老师的-dubbo课程,极速下载百度网盘-吴水成老师的-dubbo课程,极速下载百度网盘-吴水成老师的-dubbo课程 先看主目 ...
- Java基础之关键字,标识符,变量
Java基础 首先,来看一下Java基础知识图解,以下便是在java学习中我们需要学习设计到的一些知识(当然不是很完全). 这些都是接下来在以后的学习中我们会学到的一些知识. 1 关键字 首次先来学习 ...
- java中的链表编写
通过while循环取出节点内容 class Node{//定义一个节点类,用于保存数据和取得下一个节点 private String data;//节点中数据 private Node next;// ...
- Python系列之 - 面向对象(2)
类的三大特性 类的三大特性包括: 封装.继承.多态 一 封装 封装就是将类所用到的所有字段.属性.方法都包含在类代码段里面,当实例调用直接调用类中的方法即可. class People(object) ...
- 关于wooyun-2015-096990的总结
漏洞url:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-096990.html 摘要 if(!ini_get('register_globals' ...
- hdu 3948 后缀数组
The Number of Palindromes Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (J ...