0%

命令_date

1. 显示和设置系统日期和时间

date [OPTION]… [+FORMAT]
date [-u| –utc| -universal] [MMDDhhmm[[CC]UYY][.ss]]

2. 其实核心的只有1个功能:

输入特定格式的时间,转换成自己想要的时间格式

2.1 输入使用-d,后边跟描述时间的文字

比如
“Sun, 29 Feb 2004 16:21:42 -0800”, “2004-02-29 16:21:42” , “next Thursday”, “-10day”, “+10min”等等,该描述性的文字由指示日历的日期,时间的天,时间的时区,天的星期,相对时间,相对日期和数字组成。空字符串表示这天的开始。

2.2 输出使用+FORMAT,后边跟各种格式:

%%: 符号%
%a: 本地星期缩写, Sun
%A: 本地星期全称, Sunday
%b: 本地月份缩写, Jan
%B: 本地月份全称, January
%c: 本地日期和时间, Thu Mar 3 23:-5:25 2005
%C: 世纪,类似%Y,DNA没有后两位, 20
%d: 月的第几天, 01
%D: 日期,%m/%d/%y
%e: 月的天数,用空格填充,类似%_d
%F: 完整的日期格式,类似%F-%m-%d
%g: ISO格式年的后两位
%G: ISO格式的年
%h: 跟%b一样
%H: 小时(00..23)
%I: 小时(01..12)
%j: 年的第几天(001..366)
%k: 小时,用空格填充(0..23); 类似%_H
%l: 小时,用空格填充(1..12) ; 类似%_I
%m: 月(01..12)
%M: 分钟(00..59)
%n: 换行
%N: 纳秒,nanoseconds(0000000000..999999999)
%p: 本地的AM或者PM
%P: 类似%p,但是是小写
%r:本地12小时制时钟时间 11:11:04 PM
%R: 24小时制的小时跟分钟,类似%H:%M
%s: 从1970-01-01 00:00:00 UTC开始的秒数,时间戳
%S: 秒(00..60)
%t: tab字符
%T: 时间,类似%H:%M:%S
%u: 星期的第几天(1..7),1是星期一
%U: 年的第几个星期(00..53),周日是星期的开始
%V: ISO星期制,星期一是星期的开始(01..53)
%w: 星期的第几天(0..6),0是星期天
%W: 年的第几个星期(00..53),周一是星期的开始
%x: 本地日期表示(12/31/99)
%X: 本地时间表示(23:13:48)
%y: 年的后两位数字(00..99)
%Y: 年
另外还有几个符号,用于修饰
- 不填充
_ 用空格填充
0 用0填充
^ 用大写
# 用相反的大小写

3. 几个例子:

1
2
3
4
5
6
7
8
9
10
# 输出今天开始时间
date -d ""
# 当前时间戳
date +%s
# 输出好看的时间:2017-9-20 16:21:42
date +"%F %T"
# 将时间戳转换成可读时间,对这里的时间戳前边要加@
date -d @1505896166 +"%F %T"
# 输出10分钟前的时间戳
date -d "-10min" +%s

至于设置系统时间,加个-s就行了。


参考:

  1. man date