Linux date命令

可用标记如下
时间
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..59)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区

日期
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yyyy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)

[例] 将以上查询结果打印出来,datetest.sh内容如下

#!/bin/bash
para=`cat para.txt`
current_time=`date`
echo 'Current time is' `date "+%c"`
for i in $paradoecho $i `date "+$i"`done

para.txt内容为

%H
%I
%k
%l
...

[root@xxx ~]# date -s "2019-11-26 14:09:18"
Tue Nov 26 14:09:18 CST 2019
[root@xxx ~]# ./datetest.sh
Current time is Tue 26 Nov 2019 02:09:22 PM CST
%H 14
%I 02
%k 14
%l 2
%M 09
%p PM
%r 02:09:22 PM
%s 1574748562
%S 22
%T 14:09:22
%X 02:09:22 PM
%Z CST
%a Tue
%A Tuesday
%b Nov
%B November
%c Tue 26 Nov 2019 02:09:22 PM CST
%d 26
%D 11/26/19
%h Nov
%j 330
%m 11
%U 47
%w 2
%W 47
%x 11/26/2019
%y 19
%Y 2019
[root@xxx ~]# date -s "2019-11-26 06:27:05"
Tue Nov 26 06:27:05 CST 2019
[root@xxx ~]# ./datetest.sh
Current time is Tue 26 Nov 2019 06:27:08 AM CST
%H 06
%I 06
%k 6
%l 6
%M 27
%p AM
%r 06:27:08 AM
%s 1574720828
%S 08
%T 06:27:08
%X 06:27:08 AM
%Z CST
%a Tue
%A Tuesday
%b Nov
%B November
%c Tue 26 Nov 2019 06:27:08 AM CST
%d 26
%D 11/26/19
%h Nov
%j 330
%m 11
%U 47
%w 2
%W 47
%x 11/26/2019
%y 19
%Y 2019
[root@xxx ~]#
[root@xxx ~]# date -s "2019-11-26 12:17:05"
Tue Nov 26 12:17:05 CST 2019
[root@xxx ~]#
[root@xxx ~]# date -s "2019-11-26 00:17:05"
Tue Nov 26 00:17:05 CST 2019
[root@xxx ~]# ./datetest.sh
Current time is Tue 26 Nov 2019 12:17:07 AM CST
%H 00
%I 12
%k 0
%l 12
(...省略...)
[root@xxx ~]# date -s "2019-11-26 12:17:05"
Tue Nov 26 12:17:05 CST 2019
[root@xxx ~]# ./datetest.sh
Current time is Tue 26 Nov 2019 12:17:06 PM CST
%H 12
%I 12
%k 12
%l 12
(...省略...)
[root@xxx ~]#

简单计算

显示昨天
date -d 'yesterday' '+%Y-%m-%d %H:%M:%S'
date -d '-1 days' '+%Y-%m-%d %H:%M:%S'

显示明天
date -d 'tomorrow' '+%Y-%m-%d %H:%M:%S'
date -d '+1 days' '+%Y-%m-%d %H:%M:%S'
date -d '1 days' '+%Y-%m-%d %H:%M:%S'

显示两小时之前(-)的两分钟之后(+或省略符号)
date -d '-2 hours 2 minutes' '+%Y-%m-%d %H:%M:%S'

[例] 打印前一天后一天、两分钟之后等(里面的量词加不加s都可以)

[root@xxx ~]# date '+%Y-%m-%d %H:%M:%S';date -d '-2 hour 2 minute' '+%Y-%m-%d %H:%M:%S'
2019-11-26 19:18:43
2019-11-26 17:20:43
[root@xxx ~]# date -d 'yesterday' '+%Y-%m-%d %H:%M:%S'
2019-11-25 19:19:06
[root@xxx ~]# date -d '-3 days' '+%Y-%m-%d %H:%M:%S'
2019-11-23 19:19:55
[root@xxx ~]# date -d 'tomorrow' '+%Y-%m-%d %H:%M:%S'
2019-11-27 19:20:12
[root@xxx ~]#

转格式

# date -d "2020-03-02" +"%Y/%m/%d %H:%M:%S"
2020/03/02 00:00:00

计算执行命令花费的时间,caltime.sh内容如下

#!/bin/bash
start=$(date +%s)
find /opt -name template* &> /dev/null
end=$(date +%s)
delta=$(( end - start ))
echo It takes $delta seconds.

执行结果:It takes 1 seconds.

把查找路径改成 “/” ,执行结果: It takes 8 seconds.

结合定时任务,每天定时将模板文件中的日期更新

#!/bin/bash
today=`date "+%y-%m-%d"`
yesterday=`date -d "-1 day" "+%y-%m-%d"`
sed -i "s/$yesterday/$today/g" /srv/dailytem.log

参考资料:

菜鸟教程  https://www.runoob.com/linux/linux-comm-date.html

[Linux] date命令相关推荐

  1. linux+date+命令+作业,Linux date命令的使用

    1.命令简介 date命令用于按照指定格式显示当前时间或者指定的时间,也可以设置系统时间.很多Shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作,此时可以使用date命令来完 ...

  2. linux date 小写h,linux date 命令详解[转载]

    linux date 命令详解 使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [- ...

  3. linux date命令设置时间

    linux date命令设置时间 其实很简单 # date -s 20060925 # date -s 21:19:50 第一行设置日期,第二行设置时间. 转载于:https://www.cnblog ...

  4. linux date命令_Linux date命令示例

    linux date命令 Unix/Linux date command is a command used for displaying the system's date and time. In ...

  5. Linux date命令精确到毫秒

    Linux date命令精确到秒 date +%Y-%m-%d' '%H-%M-%S [root@harbor ~]# date +%Y-%m-%d' '%H-%M-%S 2021-01-25 17- ...

  6. 【Linux】一步一步学Linux——date命令(81)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 扩展 06. 附录 01. 命令概述 date - 打印或设置系统日期和时间 若是 ...

  7. linux+date+命令+作业,Linux date命令

    date命令是Linux中常用的一个命令,主要作用就是显示本机当前时间.如下: 在本人Linux操作系统中,date命令默认实现格式为年月日-星期-时分秒,然后是CST中央标准时间.不过,你也可以自行 ...

  8. Linux.date命令详解

    格式化 date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--univer ...

  9. linux date命令的格式

    我们在linux中使用shell时,想查看日期或时间的时候可以使用date这个命令. date命令的格式: date [option] [+Format] 以下选出几个日常比较常用的时间格式: dat ...

最新文章

  1. Asp.net网站的自动部署-sqlserver数据库的自动部署
  2. android canvas bitmap matrix,Canvas API详解(Part 3)Matrix和drawBitmapMash
  3. android 如何判断h5页面是否加载完成_H5 键盘兼容性小结
  4. 解决Visual Studio “无法导入以下密钥文件”的错误
  5. SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换
  6. html拖拽模态框,可拖拽的谷歌样式纯javascript模态窗口插件
  7. Spring Security 示例UserDetailsS​​ervice
  8. ❤️ Spring相关配置
  9. Linux下rpm、yum和源码三种安装方式详细介绍
  10. CSS权威指南阅读笔记
  11. c语言教材1-8章参考答案,C语言课后习题参考答案(第1-8章)
  12. arcgis测量工具测量类型无法选择平面
  13. 2016年Godaddy最新域名转出教程
  14. 设计心理学2-与复杂共处【读书笔记】
  15. 数据挖掘领域十大经典算法之—C4.5算法(超详细附代码)
  16. 很多我们以为一辈子都不会忘记的事情,就在我们念念不忘的日子里,被我们遗忘了。
  17. MaskFormer 在 MMDtection 中复现全流程解析
  18. Q4营收远超市场预期,唯品会回归“百亿美元大户”躲过倒春寒?
  19. sap 标准委外和工序委外_SAP PP 工序委外详解
  20. 大数据开发工程师学习路线分享

热门文章

  1. 微信读书终于可以在电脑上阅读了
  2. 设计师都在用的宝藏网站,你一定要知道
  3. 计算机配置好坏怎么看,电脑配置怎么看 史上最全的查看电脑配置好坏方法
  4. c语言大作业打印课程表,课程表(c语言)
  5. Centos8、Centos7解决Ens33网卡不显示IP地址的问题。
  6. 基于matlab语音增强,基于MATLAB的语音增强系统的设计
  7. 【PTA乙级练习题】topic:1001
  8. 快速学习Maven-从私服下载 jar 包Nexus
  9. 【OpenCV 例程 300 篇】105. 湍流模糊退化模型
  10. Day5 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(一)...