date命令–显示日期与时间

date +%F -d 'yesterday'
date -d "Wed Aug 18 09:48:08 CST 2021" +%s
date -d "Wed, Aug 18 09:48:08 CST 2021" +%s
date -d "Sat, 14 Aug 2021 00:55:50 +0800" +%s
date -d @1629251288
* * 28-31 * * [`date -d tomorrow +\%e` -eq 1] && do something 
* * L * * do something 

取单独的时间信息

# 只显示今天是几号
date +%e

# 只显示小时,00-23,24小时制,不足两位前面用0补齐
date +%H

# 只显示小时,0-23,24小时制
date +%k

# 只显示分,00-59,不足两位前面用0补齐
date +%M

# 月份
date +%m

# 两位格式的年份
date +%y

# 完整年份
date +%Y

计算日期

# 计算10天前的日期
date +%F -d "-10 days"

# 计算10天后的日期
date +%F -d "+10 days"

date命令可以用来显示或设定系统日期和时间

语法格式:date [options] [+output]

常用参数
描述

-d datestr

-s datestr

将系统时间设置为datestr中的时间

-u

显示目前的格林威治时间

输出格式
描述

+%%

输出一个 %

+%a

当前locale 的星期名[[缩写]](例如: 日,代表星期日)

+%A

当前locale 的星期名全称 (如:星期日)

+%b

当前locale 的月名[[缩写]] (如:一,代表一月)

+%B

当前locale 的月名全称 (如:一月)

+%c

当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)

+%C

世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)

+%d

按月计的日期(例如:01)

+%D

按月计的日期;等于%m/%d/%y

+%e

按月计的日期,添加空格,等于%_d 10以下的前面没有0

+%F

完整日期格式,等价于 %Y-%m-%d

+%g

ISO-8601 格式年份的最后两位 (参见%G)

+%G

ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用

+%h

等于%b

+%H

小时(00-23)

+%I

小时(00-12)

+%j

按年计的日期(001-366)

+%k

hour, space padded ( 0..23); same as %_H 跟%H一样,不过10以下的前面没有0

+%l

hour, space padded ( 1..12); same as %_I 跟%I一样,不过10以下的前面没有0

+%m

month (01..12)月份

+%M

minute (00..59) 分钟

+%n

换行

+%N

纳秒(000000000-999999999)

+%p

当前locale 下的"上午"或者"下午",未知时输出为空

+%P

与%p 类似,但是输出小写字母

+%r

当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)

+%R

24 小时时间的时和分,等价于 %H:%M

+%s

自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数

+%S

秒(00-60)

+%t

输出制表符 Tab

+%T

时间,等于%H:%M:%S

+%u

星期,1 代表星期一

+%U

一年中的第几周,以周日为每星期第一天(00-53)

+%V

ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)

+%w

一星期中的第几日(0-6),0 代表周一

+%W

一年中的第几周,以周一为每星期第一天(00-53)

+%x

当前locale 下的日期描述 (如:12/31/99)

+%X

当前locale 下的时间描述 (如:23:13:48)

+%y

年份最后两位数位 (00-99)

+%Y

年份

+%z +hhmm

数字时区(例如,-0400)

+%:z +hh:mm

数字时区(例如,-04:00)

+%::z +hh:mm:ss

数字时区(例如,-04:00:00)

+%:::z

数字时区带有必要的精度 (例如,-04,+05:30)

+%Z

按字母表排序的时区[[缩写]] (例如,EDT)


linux 将秒转成时间、时间转成秒

date -d @1525222800
	Wed May  2 09:00:00 CST 2018
date -d “2018-05-02 09:00:00”
	1525222800
date -d "$((1525222800 - `date '+%s'` )) sec" +%Y-%-m-%-d
	2018-05-02
date +%s
	1525222800
date +%F
	2018-05-02
date +"%F %T"
	2018-05-02 09:00:00

最后更新于