功能
用来显示或设定系统的日期与时间。
用法
date [选项]... [+格式]
常用选项
-d,--date=字符串 显示指定字符串所描述的时间,而非当前时间
-f,--file=日期文件 类似--date,从日期文件中按行读入时间描述
-r, --reference=文件 显示文件指定文件的最后修改时间
-R, --rfc-2822 以RFC 2822格式输出日期和时间
例如:2006年8月7日,星期一 12:34:56 -0600
--rfc-3339=TIMESPEC 以RFC 3339 格式输出日期和时间。
TIMESPEC=`date',`seconds',或 `ns'
表示日期和时间的显示精度。
日期和时间单元由单个的空格分开:
2006-08-07 12:34:56-06:00
-s, --set=字符串 设置指定字符串时间
-u, --utc, --universal 输出或者设置协调的通用时间
--help 显示此帮助信息并退出
--version 显示版本信息并退出
日期格式字符串列表
%% 一个文字的 %
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)
常用命令示例
格式化输出
[root@demo ~]# date +%F
2024-04-23
[root@demo ~]# date +%y-%m-%d
24-04-23
[root@demo ~]# date +%Y-%m-%d\ %H:%M:%S
2024-04-23 02:06:53
[root@demo ~]# date +"%Y/%m/%d %H:%M:%S"
2024/04/23 00:04:45
时间同步
# 1.本地修改
date -s "2017/07/30 18:39" # 设置时间
hwclock # 同步时间到shell
# 2.同步互联网时间
ntpdate time.windows.com # (ntpdate是一个内部的同步时间的代码)
-d 的一些操作
# 输出昨天的时间
[root@demo ~]# date -d "1 day ago" +"%Y-%m-%d"
2024-04-22
# 传说中的 1234567890 秒
[root@demo ~]# date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30
# 时间转换
[root@demo ~]# date -d "Apr 23, 2024 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2024-04-23 00:00.37
# 加减操作
date +%Y%m%d #显示当前年月日
date -d "+1 day" +%Y%m%d #显示前一天的日期
date -d "-1 day" +%Y%m%d #显示后一天的日期
date -d "-1 month" +%Y%m%d #显示上一月的日期
date -d "+1 month" +%Y%m%d #显示下一月的日期
date -d "-1 year" +%Y%m%d #显示前一年的日期
date -d "+1 year" +%Y%m%d #显示下一年的日期
实用演示
检查一组命令花费的时间
#!/bin/bash
start=`date +%s`
nmap man.linuxde.net &> /dev/null
end=`date +%s`
difference=$(( end - start ))
echo $difference seconds.
评论区