在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

参考页面:1、http://www.cnblogs.com/xd502djj/archive/2010/12/29/1919478.html
写在最后,由于博客的编辑功能限制,某些字符显示在页面上不是很明显,特意将个人的本地同名总结文档上传上来,如果读者看着页面中的不习惯,可以下载附件阅读。

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

转载于:https://www.cnblogs.com/davidwang456/p/4054069.html

Linux中date命令的各种实用方法--转载相关推荐

  1. linux中date命令如何设置时间戳,Linux基本命令之date命令的参数及获时间戳的方法...

    1.时间命令:date 向date命令传递参数适用'+'(加号),在传递的参数中 %Y表示年 %m表示月 %d表示天 %H表示小时(表示的时间是00-23) %M表示分钟 %S表示秒 %s(表示uni ...

  2. linux如何更改服务器时间格式,Linux中date命令,格式化输出,时间设置

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

  3. linux中date命令详解,Linux 之date命令详解

    Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: 时间方面: % : 印出 % %n : 下 ...

  4. linux中命令date,Linux 中date命令的用法

    关于Linux内置命令date的用法,这里主要说一下,它在shell脚本中如何做日期计算和转换的. 格式化输出日期 详细的格式化符号可以用man date找到,这里以年月日来表示 获得当前的日期: # ...

  5. linux中date命令详解,Linux使用date命令修改日期时间详解linux操作系统 -电脑资料...

    在linux中我们只要使用ROOT管理员进入然后就可以直接使用date函数来修改服务器的日期时间了,如date -s 2013-08-03就设置成功了,下面我来来看看date用法 Linux 时间修改 ...

  6. Linux中date命令用法及大小比较

    Linux date命令的用法 使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [- ...

  7. linux中date命令PDT,linux系统下date命令修改时间及hwclock硬件时间

    修改日期: 时间设定成2016年5月18日的命令如下: date -s 05/18/2016 修改时间: 将系统时间设定成上午10点10分40秒的命令如下. date -s 10:10:40 修改时区 ...

  8. linux中date命令设置系统时间的方法-转

    在网上找到分下面两步设置时间的方法,一次设置成功的方法还没有找到. 首先必须是root帐号. 设置时间为下午14点36分. # date -s 14:36:00 Fri Nov 26 14:15:00 ...

  9. linux 字符串转数字排序,linux中sort命令排序功能实现方法

    功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. 参 数: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字母.数 ...

最新文章

  1. UIAutomator 2
  2. 单链表进阶学习 三段
  3. php输出多余的空格或者空行
  4. 复杂度O(n)倒转链表
  5. 英伟达推出全新DPU处理器 透露未来三年DPU发展路线图
  6. jsp文字上下居中显示_jsp中怎样让文字居中 ?
  7. 离散数学(第2版)屈婉玲版知识点小结(用于个人快速复习)-1
  8. MOSSE相关滤波跟踪算法
  9. python模拟登陆GDUFE教学一体化平台
  10. 桌面图标有蓝底怎么去掉?
  11. MOS管RC缓冲电路相关参数计算方法
  12. 下载安装破解idea2018
  13. 英语-新视野大学英语四课后翻译(全)
  14. 统计找出一千万以内,一共有多少质数
  15. 2022年十一届认证杯C题
  16. Python 拼接wav音频
  17. 深度学习20-限制玻尔兹曼机RBM
  18. 思博伦测试仪学习笔记(性能测试方向RFC2544)
  19. 计算机通讯电缆型号,计算机电缆简介及型号
  20. 对计算机财务管理的理解,计算机财务管理实习报告.docx

热门文章

  1. 之江汇空间如何加音乐背景_从脚本到成品,教你如何快速制作出创意又浪漫的婚礼视频...
  2. 调用ajax_[WEB篇]-AJAX-02-AJAX应用案例
  3. Qt中多线程间的互斥
  4. 计算器初步添加消息响应
  5. linux qos 实现机制,linux的qos机制 - cgroup篇 (4)
  6. java打印星号_【其它】编写Java程序在屏幕上打印用星号组成的等腰三角形
  7. DialogFragment 全屏显示
  8. Linux下CMake简明教程(10) 定义宏来控制打印的信息
  9. numpy a[...,:2]
  10. 蓝桥杯抽卡游戏c语言,取球游戏——第三届蓝桥杯省赛C语言A组第10题