大家好,本篇博客介绍了两个关于Linux里的时间和日期的命令,有些内容是我自己翻译的,如果有不足,还望读者多多指教


本篇博客的符号说明:

[]里的值都不是固定的,而不是可选的

中括号里的...是可以有多个

&是或(or)的意思(%G&%Y是%G或%Y)

%是系统定义的固定格式


date 查看与设置系统时间和日期

语法:date

date  [+格式符]

date  [选项]  [+格式符]

选项:

-r:选项后加文件名;显示文件的最后修改时间

-u:显示GMT(世界时)

格式符

%n:换行符

%t:相当于“TAB”键

%C:显示当前世纪

%G&%Y:显示完整年份

%y&%g:显示缩写年份

%U& %V&%W:一年的第几个星期(00~53,星期一为第一天)

%j:显示今天是一年当中的第几天

%d&%e:显示今天是一个月当中的第几天

%B:显示当前月份

%h&%b:显示月

%m:显示当前月份是12个月里的第几个

%A:查看今天是星期几(完整名称)

%a:查看今天是星期几(缩写名称)

%w&%u:查看今天是星期几(数字名称)

%P&%p:显示上午还是下午

%r:显示上午还是下午+时分秒

%R:显示小时分钟(格式:小时:分钟)

%H%k:小时(24小时制)

%I:小时(12小时制)

%M:显示分

%S:显示秒

%N:显示纳秒

%F:显示当前日期(格式:年-月-日)

%x:显示当前日期(格式:年 月 日)

%D:显示当前日期(格式:月/日/年)

%X:显示当前时间(格式:时 分 秒)

%T:显示当前时间(格式:时:分:秒)

%c:显示日期、星期、时间

%s:时间戳,从1970年1月1日00:00:00到现在经历的秒数

%Z:显示时区

 

查看今天是一年中的第几天

wKioL1lYwluT9tfoAACDShOhyVU600.jpg


也可以把命令的执行结果赋给变量;再用echo命令输出

wKioL1lYwofi7M9iAAD4rPs6IS4894.jpg

关于变量和echo命令的概念我会在后续博文中写到


设置日期时间并查看(可以自己指定格式)

语法格式:月日小时分钟年.秒

wKioL1lYwr3S1b_oAAHCEsFmui8254.jpg



cal 显示当前系统上的日历

语法:cal

      cal [完整年份]

      cal [月份]  [完整年份]

cal [选项...]

cal [选项...] [年份]

选项:

-1:显示一个月的日历(默认)

-3:显示三个月的日历

-s:显示星期天为一个星期的第一天(默认)

-m:显示星期一为一个星期的第一天

-j:显示今天是一年中的第几天

-y:显示当前年份的日历

 

将星期日作为一星期中的第一天

wKiom1lYwuuw5adsAAERErtAH_c059.jpg


将星期一作为一星期中的第一天

wKioL1lYw3Sy2byXAAEP9XHuGsE482.jpg


显示今年的日历并显示今天是今年的哪一天

wKiom1lYw5yC60yJAAg6iK1SeDQ760.jpg



一个小故事

wKioL1lYw8bSShQrAAD-mUk0H2Y406.jpg


有没有感到很奇怪?哈哈,1752年的9月的日历从3日~13日都没有了;为什么呢?因为,这里有一个故事(历史上真实发生的事儿)

  百度百科上是这样说的:1752年9月,大英帝国极其所属美洲殖民地的恺撒历法被格里高利教皇历法所取代。由于恺撒历法比格里高利历法迟11天,因此9月2日当天改历法后,次日须为9月14日。现行的公历是格利戈里历法,这个历法的是1582年教皇格利戈里根据恺撒大帝引进的算法改进的。它采用的是闰年制也就是现行的制度,不过有一个需要注意的地方就是,这个历法并不是连续的,中间缺少了11天。1752年9月2日之后的那一天并不是1752年9月3日,而是1752年9月14日。也就是说,从1752年9月3日到1752年9月13日的11天并不存在。抹掉这11天是由英国议会做出的决定。所以要计算某年每个月的天数的,除了要考虑是否是闰年以外,还要考虑1752年的9月。

  这段历史,只有学Linux,才有可能了解到