【需求】
需求:转换给定时间的格式
ORIGINAL="Jul 1 21:29" date "+%G-%m-%d %H:%M:%S" -d "$ORIGINAL"
输出:
2020-07-01 21:29:00
直接转换:
date +%b/%d/%G -d "2020-01-01"
输出:
Jan/01/2020
需求:显示目前的格林威治时间
date -u
输出:
Thu Jan 2 05:44:28 UTC 2020
需求:日期之间间隔的天数
expr '(' $(date +%s -d "2020-01-31") - $(date +%s -d "2020-01-01") ')' / 86400
输出:
30
需求:日期加减指定间隔单位
增加36小时:
a=`date +%Y-%m-%d` b=`date +%Y-%m-%d -d "$a +36 hours"`
10天前:
date -d "$a -10 days"
需求:以指定格式显示文件最后更改时间
date "+%Y-%m-%d %H:%M:%S" -r test.txt
输出:
2019-12-31 00:15:09
需求:给定的日期究竟是星期几
并得到相对于当前日期的相对日期。
date -d "nov 22"
输出:
Sun Nov 22 00:00:00 CST 2020
需求:获取月份,单数个位数月份补足0
date +%m
输出:
01
需求:获取月份,单数个位数月份不加0
参考:https://www.unix.com/shell-programming-and-scripting/84298-single-digit-day-month-date.html
参考:https://www.unix.com/shell-programming-and-scripting/97052-month-single-digit.html
当不希望出现无意义的 0 时(比如说 1999/03/07),则能在标记中插入 – 符号。
把月中无意义的 0 给去掉:
date +%-m
输出:
1
把时分秒中无意义的 0 给去掉:
date +%-H:%-M:%-S
输出:
6:7:8
需求:获得当天的日期
date +%Y-%m-%d
输出:
2020-01-01
需求:将当前日期赋值给DATE变量
DATE=$(date +%Y%m%d) echo $DATE
输出:
20200102
需求:显示时间后跳行,再显示日期
date +%T%n%D
输出:
13:36:27 01/02/20
需求:显示月份和日期
date +%B-%d
输出:
January02
需求:ntp时间同步:
linux系统下默认安装了ntp服务,手动进行ntp同步如下
ntpdate ntp1.nl.net
输出:
2 Jan 13:42:24 ntpdate[28082]: adjust time server 193.79.237.14 offset -0.020147 sec
只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
需求:使用今天之前或者往后的日期,这时可以使用date的 -d参数
获取明天的日期:
date -d next-day +%Y%m%d
获取昨天的日期:
date -d last-day +%Y%m%d
获取上个月的年和月:
date -d last-month +%Y%m
获取下个月的年和月:
date -d next-month +%Y%m
获取明年的年份:
date -d next-year +%Y
【语法】
参考:https://www.cnblogs.com/mfryf/archive/2012/03/23/2413362.html
参考:https://www.cnblogs.com/OliverQin/p/5865656.html
基本语法:
名称 : date
使用权限 : 所有使用者
使用方式 : date [-u] [-d datestr] [-s datestr] [–utc] [–universal] [–date=datestr] [–set=datestr] [–help] [–version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 : date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面:
% : 印出
% %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..61)
%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)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],
其中:
MM 为月份
DD 为日
hh 为小时
mm 为分钟
CC 为年份前两位数字
YY 为年份后两位数字
ss 为秒数