Linux:时间指令 - cal & date
date指令
date
用于以指定格式显示时间
我们先看看直接输入date
指令的效果:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date
Tue Mar 12 21:38:01 CST 2024
直接输入date
指令,得到了以 星期 月 日 时:分:秒 时区 年
为格式的时间。
但是date
指令可以按照自己制定的格式来输出时间
使用者可以设定格式,语法为一个 + 后接数个标记
常用标记如下:
标记 | 含义 |
---|---|
%H | 小时 |
%M | 分钟 |
%s | 秒 |
%X | 相当于 %H:%M:%S |
%d | 日 |
%m | 月 |
%Y | 年 |
%F | 相当于%Y-%m-%d |
示例:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date +%F_%X
2024-03-12_09:50:15 PM
以上示例中,+%F_%X
这个整体就用于格式化输出,其以一个+
开头。对照上方的标记表格,其实%F
就对应了2024-03-12
,%X
就对应了09:50:15 PM
,而他们的分隔符也是可以有我们自己穿插的:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date +%Y:%m-%d_%H
2024:03-12_21
这样每个标记都显示了自己代表的时间,而每个时间之间的符号完全由我们自己决定。
date
指令还可以用于输出时间戳,先简单讲解一下时间戳的概念:
时间戳是从格林威治时间1970年01月01日00时00分00秒开始至今所经过的秒数
通过
+%s
来获取时间戳:
示例:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date +%s
1710251847
其中1710251847
就是当前的时间戳。
通过
-d @1710252008
,把时间戳转化为时间:
示例:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date -d @1710252008
Tue Mar 12 22:00:08 CST 2024
可以看到,1710252008
时间戳代表的就是2024年3月12日22:00:08
,我们也可以按照制定格式输出刚刚的时间戳:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date +%X_%F -d @1710252008
10:00:08 PM_2024-03-12
现在我们再看一看0
时间戳的时间:
[hxy@iZ2zehtehrgzt3wqccrpyfZ CSDN]$ date -d @0
Thu Jan 1 08:00:00 CST 1970
可以看到,0
时间戳确实是1970年1月1日
,但是为什么是在早上8:00
?
这是因为我们的Linux服务器在中国,中国在东八区,所以格林威治时间00时00:00时,东八区的时间就是8:00。
cal指令
cal
指令可以用来显示公历日历
我们直接使用cal
试试看:
可以看到,其输出了当前月份的日历,并且高亮标出了当前是几号。
接下来我们再看几个常用选项:
-3
选项可以同时输出当前月份的前后一个月:
-j
选项,将数字从输出当月的第几号,改为输出当年的第几号:
-y
选项,输出目前一整年的日历: