不管是哪种语言,日期/时间都是一个非常重要的值。比如我们保存日志的时候,往往是某个前缀再加上当前时间,这样日志文件名称就可以做到唯一。
在Shell环境里,我们获取时间的命令是date,但date出来的时间日期格式、内容可能不是我们所想要的,所以我们可能需要对它进行一些格式化输出。
常用的时间域如下:
% Y 年(例如:1970,2019等)
% m 月(01..12)
% d 一个月的第几天(01..31)
% H 小时(00..23)
% M 分(00..59)
% S 秒(00..59)
使用不带参数的date命令获取当前时间日期。这样得到的一般是CST标准格式的时间。
[alvin@VM_0_16_centos ~]$ date
Thu Jan 31 15:11:09 CST 2019
获取特定以特定格式,命令为:date + ‘format’,注意这里大小写敏感。
[alvin@VM_0_16_centos ~]$ date +'%Y-%m-%d'2019-01-31
[alvin@VM_0_16_centos ~]$ date +'%Y/%m/%d %H:%M:%S'Thu Jan 31 15:11:09 CST 2019
获取昨天的日期。可在上述的命令里再加上-d选项。
[alvin@VM_0_16_centos ~]$ date -d 'yesterday' +'%Y/%m/%d %H:%M:%S'2019/01/30 15:11:09
或者
[alvin@VM_0_16_centos ~]$ date -d 'today -1 day' +'%Y-%m-%d'2019-01-30
获取当前时间的前一个小时
[alvin@VM_0_16_centos ~]$ date -d 'today -1 hour' +'%Y%m%d%H'2019013114
或者
[alvin@VM_0_16_centos ~]$ date +'%Y-%m-%d %H:%M:%S' -d '-1 hours'2019-01-31 14:11:09
获取指定日期前一天。这其实就是求相对时间。比如下面求国庆的前一天日期:
[alvin@VM_0_16_centos ~]$ date -d '20181001 -1 day' +'%Y%m%d'20180930
将日期转换为时间戳
[alvin@VM_0_16_centos ~]$ date -d "Nov 4 15:49:41 CST 2018" +%s1541317781
将时间戳转换回日期
[alvin@VM_0_16_centos ~]$ date -d @1541317781
Sun Nov 4 15:49:41 CST 2018
将时间戳转换为日期,并按特定格式显示
[alvin@VM_0_16_centos ~]$ date -d @1541317781 +'%Y%m%d %H:%M:%S'20181104 15:49:41
干货分享
Linux下find与exec的联手干大事
为什么要用 lambda ??
Python 开发者节省时间的 10 个方法
Redis的N种妙用,不仅仅是缓存
#!/usr/bin/env python与#!/usr/bin/python的区别
好看!快收藏:非常完整的MySQL规范
Python时操作几个坏习惯,你中了吗?
Linux 命令行中点“·”的作用实践探索
Linux中神奇的叹号“!”命令——各类型用法总结
Linux进程列表里多了个奇怪的进程,如何定位可执行文件位置??
问运维攻城狮:RAID磁盘阵列是什么?一看就懂!
不知道这十项Linux常识,别说自己是运维工程师!
如何同时 ping 1000 个IP?一个小技巧节约N小时!
2019运维技能风向标
来聊聊 Shell 脚本中 " #!/bin/bash“和” #!/bin/sh"的区别
Linux 系统运行速度太慢的关键原因全都在这了
对于Ping的过程,你真的了解吗?
Linux下的7个开源安全工具,再也不怕黑客啦
Python 太糟糕了?开发者总结了 8 大原因
高并发架构系列:Redis缓存和MySQL数据一致性方案实践
Flask框架web开发:零基础入门
Python 带你飞:50 个有趣而又鲜为人知的 Python 特性
大神花了 6 个月整理了 Python 所有库
19 个优雅的 Python 编程技巧,涨姿势!
运维攻城狮背锅侠的逆袭之路~~
不懂开发的运维人员到底还能走多远??
安全运维之:DDOS 和 DOS 有什么区别呢?
有干货,猛戳下面的据说点”好看“2019一定加薪!!