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 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...