Shell命令——date的用法
创始人
2024-05-28 15:59:43
0

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

一、显示系统的日期与时间

(1)如果date命令后面不加任何参数,则会按照固定的格式显示时间信息:

星期几 月份 日 时:分:秒 时区 年xjh@ubuntu:~/iot/tmp$ date 
Fri Mar  3 16:56:48 CST 2023
xjh@ubuntu:~/iot/tmp$

(2)使用者也可以根据自己的需求,来设定显示的格式,设置显示格式的方式如下。

date +以%开头的控制标志

当这些控制标志之间存在空格时,需要使用双引号把它们括起来,如下所示。

date +"以%开头的控制标志" 
xjh@ubuntu:~/iot/tmp$ date +%H      #以“时”的形式显示当前时间
16
xjh@ubuntu:~/iot/tmp$ date +%H:%M   #以“时:分”的形式显示当前时间
16:56
xjh@ubuntu:~/iot/tmp$ date +%H:%M:%S #以“时:分:秒”的形式显示当前时间
16:56:57
xjh@ubuntu:~/iot/tmp$ date +%H:%M %S #控制标志之间存在空格时,需要使用双引号包围
date: 额外的操作数 "%S"
Try 'date --help' for more information.
xjh@ubuntu:~/iot/tmp$ date +"%H:%M %S"
17:06 44
xjh@ubuntu:~/iot/tmp$

(3)常用的控制标志与含义如下表所示。

xjh@ubuntu:~/iot/tmp$ date
Fri Mar  3 17:25:50 CST 2023
xjh@ubuntu:~/iot/tmp$ 
控制标志含义举例(输入"date +控制标志"之后的输出)
日期方面
%a星期几 (Sun..Sat)Fri
%A星期几 (Sunday..Saturday)Friday
%b月份 (Jan..Dec)Mar
%B月份 (January..December)March
%c直接显示日期与时间Fri 03 Mar 2023 05:28:48 PM CST
%d日(01…31)03
%D直接显示日期(月/日/年)03/03/23
%h同%bMar
%j一年中的第几天 (001..366)062
%m月份 (01..12)03
%U一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)09
%w一周中的第几天 (0..6)5
%W一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)09
%x直接显示日期,和%D一样?03/03/2023
%y年份的最后两位数字 (00…99)23
%Y完整年份(0000……9999)2023
时间方面
%H小时(00..23)17

%I(大写i)

小时(01..12)05
%k小时(0..23)17
%M分钟(00..59)42
%p显示本地 AM 或 PMpm
%r直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)05:43:29 PM
%s从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数1677836662
%S秒(00..61)39
%T直接显示时间 (24 小时制)17:45:05
%X与%r相同?05:45:35 PM
%Z显示时区CST
其他内容
%n下一行

比如date +%T%n%D,会显示时间后跳行,再显示目前日期。

19:52:52
03/03/23

 (4)可以把无意义的0去掉,比如1999/03/07中03与07前面的0,在控制标记中插入“-”即可。

xjh@ubuntu:~/iot/tmp$ date +%H:%M:%S
08:04:11
xjh@ubuntu:~/iot/tmp$ date +%-H:%-M:%-S
8:4:21
xjh@ubuntu:~/iot/tmp

(5)如何利用date显示以前的时间呢? 使用-d选项,如下所示。

xjh@ubuntu:~/iot/tmp$ date -d "-2 day" "+%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$ date -d "-2 day" +"%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$ date -d "-1 day" "+%Y%m%d %A" 
20230302 Thursday
xjh@ubuntu:~/iot/tmp$ date -d "-0 day" "+%Y%m%d %A" 
20230303 Friday
xjh@ubuntu:~/iot/tmp$ date -d "1 day" "+%Y%m%d %A" 
20230304 Saturday
xjh@ubuntu:~/iot/tmp$ date -d "2 day" "+%Y%m%d %A"
20230305 Sunday
xjh@ubuntu:~/iot/tmp$ date -d "-1 month" "+%Y%m%d %A"
20230203 Friday
xjh@ubuntu:~/iot/tmp$ date -d "1 month" "+%Y%m%d %A"
20230403 Monday
xjh@ubuntu:~/iot/tmp$ date --date="2 days ago" "+%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$

二、设置系统的日期与时间

只有root才有设置系统日期与时间的权限。以 root 身份修改系统时间之后,要以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

这部分内容我们很少关注,这里不叙述了。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...