2022-12-01--Linux中date命令的各种实用方法

        在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,

        以下是我在工作中积累的关于date命令的用法,绝大多数都有解释说明,并配有范例,记录了linux中date命令的各种特定时间的表示方法,如何修改为特定的时间等,相信读者在认真读完并领会接下来的范例之后,一定会对date命令更加熟练,达到举一反三的效果,从而可以任意表示想要表示的时间,也就可以任意调整服务器的时间了,这其中有网上的各中学习资料,也有date自身的man手册,也有很多同事的智慧,也有个人的独立学习,在此也感谢各位前辈的的贡献和各位同事积极的帮助。如果本文中有错误之处,请联系QQ:349871740,欢迎指正^_^

1、以下是服务器现在的时间,当前时间的各种表示方法,表示成自己想要的时间格式,后面的范例将会在这个时间基础之上进行演示,同时这也是熟练掌握后面各种date命令的前提,请读者注意

[root@RHEL601 tmp]# date

2012年 07月 19日 星期四 20:11:16 CST

读者可以设定特定的格式,格式设定规则:一个加号后接数个标记,每个标记中都有%,其中可用的标记列表和说明如下:

%n : 下一行

%t : 跳格

%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/yy)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000..9999)

按照特定的格式输出时间:短接符"-"、空格" "和冒号":" 为分隔符,其中空格前面加了转义符号"\"

[root@RHEL601 tmp]# date +%Y-%m-%d\ %H:%M:%S

2012-07-19 21:10:28

在当前时间的基础上往前推或者往后推三天

[root@RHEL601 tmp]# date -d "+3 day"

2012年 07月 22日 星期日 20:12:08 CST

[root@RHEL601 tmp]# date -d "-3 day"

2012年 07月 16日 星期一 20:12:12 CST

在当前时间的基础上往前推或者往后推三个月

[root@RHEL601 tmp]# date -d "-3 month"

2012年 04月 19日 星期四 20:12:39 CST

[root@RHEL601 tmp]# date -d "+3 month"

2012年 10月 19日 星期五 20:12:48 CST

在当前时间的基础上往前推或者往后推三年

[root@RHEL601 tmp]# date -d "+3 year"

2015年 07月 19日 星期日 20:13:06 CST

[root@RHEL601 tmp]# date -d "-3 year"

2009年 07月 19日 星期日 20:13:11 CST

在当前时间的基础上往前推或者往后推三小时

[root@RHEL601 tmp]# date -d "-3 hour"

2012年 07月 19日 星期四 17:13:20 CST

[root@RHEL601 tmp]# date -d "+3 hour"

2012年 07月 19日 星期四 23:13:24 CST

在当前时间的基础上往前推或者往后推三分钟

[root@RHEL601 tmp]# date -d "+3 minute"

2012年 07月 19日 星期四 20:16:56 CST

[root@RHEL601 tmp]# date -d "-3 minute"

2012年 07月 19日 星期四 20:10:59 CST

在当前时间的基础上往前推或者往后推三十秒

[root@RHEL601 tmp]# date && date -d "-30 second"

2012年 07月 19日 星期四 20:14:24 CST

2012年 07月 19日 星期四 20:13:54 CST

[root@RHEL601 tmp]# date && date -d "+30 second"

2012年 07月 19日 星期四 20:14:29 CST

2012年 07月 19日 星期四 20:14:59 CST

2、接下来的范例说明如何用date来表示各种各样的时间,表示的都是某一天的零点时间,也可以在当前的时分秒的基础上表示时间,(特别注意中间用到了反单引号`)参见范例

date -d `date +%y%m01` #本月第一天

[root@RHEL601 tmp]# date -d `date +%y%m01`

2012年 07月 01日 星期日 00:00:00 CST

date -d `date +%y%m01`"-1 day"  #上个月最后一天

[root@RHEL601 tmp]# date -d `date +%y%m01`"-1 day"

2012年 06月 30日 星期六 00:00:00 CST

date -d `date -d "-3 month" +%y%m01`"-1 day" #4个月前的第一天

[root@RHEL601 tmp]# date -d `date -d "-3 month" +%y%m01`"-1 day"

2012年 03月 31日 星期六 00:00:00 CST

date -d `date -d "+12 month" +%y%m01`"-1 day" #第11个月后的第一天

[root@RHEL601 tmp]# date -d `date -d "+12 month" +%y%m01`"-1 day"

2013年 06月 30日 星期日 00:00:00 CST

date -d `date -d "-1 month" +%y%m01` #上个月第一天

[root@RHEL601 tmp]# date -d `date -d "-1 month" +%y%m01`

2012年 06月 01日 星期五 00:00:00 CST

date -d `date -d "+12 month" +%y%m01` #第12个月后的第一天

[root@RHEL601 tmp]# date -d `date -d "+12 month" +%y%m01`

2013年 07月 01日 星期一 00:00:00 CST

date -d `date -d "-1 day" +%Y%m%d` #前一天零点时间

[root@RHEL601 tmp]# date -d `date -d "-1 day" +%Y%m%d`

2012年 07月 18日 星期三 00:00:00 CST

date -d `date -d "-3 day" +%Y%m%d` #前三天零点时间

[root@RHEL601 tmp]# date -d `date -d "-3 day" +%Y%m%d`

2012年 07月 16日 星期一 00:00:00 CST

date -d `date -d "+1 day" +%Y%m%d` #明天零点时间

[root@RHEL601 tmp]# date -d `date -d "+1 day" +%Y%m%d`

2012年 07月 20日 星期五 00:00:00 CST

date -d `date -d "+3 day" +%Y%m%d` #往后推三天零点时间

[root@RHEL601 tmp]# date -d `date -d "+3 day" +%Y%m%d`

2012年 07月 22日 星期日 00:00:00 CST


3、以下简单示范了字母大小写在date命令中的区别

Y #代表完整的年份,例如:2012年 将显示 2012

y #代表缩写年份,例如:2012年 缩写为 12

[root@RHEL601 tmp]# date +"%y%m01%H%M%S"

121201121556

[root@RHEL601 tmp]# date +"%Y%m01%H%M%S"

20121201121610

4、以下范例说明如何调整服务器的时间

ntpdate 210.72.145.44 #将服务器时间调整为正常时间,210.72.145.44 是国家授时中心服务器IP地址

[root@RHEL601 tmp]# ntpdate 210.72.145.44

19 Jul 13:07:07 ntpdate[15150]: adjust time server 210.72.145.44 offset -0.020920 sec

date 121212122012 #将时间设置为2012年 12月 12日 星期三 12:12:00,date后面的数字代表月日时分年,还可以加秒,需要后面跟英文状态下的句号字符".",例如:121212122012.12

[root@RHEL601 tmp]# date 121212122012

2012年 12月 12日 星期三 12:12:00 CST

[root@RHEL601 tmp]# date 121212122012.12

2012年 12月 12日 星期三 12:12:12 CST

[root@RHEL601 tmp]# date `date -d "1 day ago" +%m%d%H%M%Y.%S`

2012年 07月 18日 星期三 20:13:04 CST

[root@RHEL601 tmp]# date

2012年 07月 18日 星期三 20:13:10 CST

[root@RHEL601 tmp]# date `date -d "3 days ago" +%m%d%H%M%Y.%S`

2012年 07月 15日 星期日 20:13:18 CST

[root@RHEL601 tmp]# date `date -d "5 days ago" +%m%d%H%M%Y.%S`

2012年 07月 10日 星期二 20:13:28 CST

[root@RHEL601 tmp]# date `date -d "$((3600*24)) seconds ago" +%m%d%H%M%Y.%S`

2012年 07月 09日 星期一 20:13:39 CST

[root@RHEL601 tmp]# date `date -d "$((3600*24)) seconds ago" +%m%d%H%M%Y.%S`

2012年 07月 08日 星期日 20:14:01 CST

[root@RHEL601 tmp]# ntpdate 210.72.145.44

19 Jul 20:14:15 ntpdate[26846]: step time server 210.72.145.44 offset 950404.037565 sec

        写在最后,由于博客的编辑功能限制,某些字符显示在页面上不是很明显,特意将个人的本地同名总结文档上传上来,如果读者看着页面中的不习惯,可以下载附件阅读。

本文出自 “开源一员” 博客,请务必保留此出处http://521cto.blog.51cto.com/950229/935642

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容