linux date --date?linux的date命令

这篇文章给大家聊聊关于linux date --date,以及linux的date命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

8个Date命令使用示例

掌握Linux时间管理:date命令详解

Linux date命令,是系统管理中不可或缺的工具,它不仅用于显示当前的日期和时间,还能进行灵活的时间设置。下面我们将通过八个实用示例,带你全面了解date命令的强大功能。

不带选项的基础展示

只需简单输入date,即可获取当前的日期和时间,如:系统显示: [root@server1~]# date Mon May 24 14:50:31 CST 2021,清晰明了地呈现了星期、月份、年份和具体时间。

切换至世界标准时间

想要查看UTC时间?只需添加-u选项,如:命令执行: [root@server1~]# date-u Mon May 24 06:51:21 UTC 2021,便于全球时间的比对和理解。

以字符串格式呈现特定日期

date命令还能通过--date选项,将日期转换为特定格式,如:转换结果: [root@server1~]# date--date="5/20/2021 13:14" Thu May 20 13:14:00 CST 2021,灵活输出定制日期。

查看历史和未来日期

date命令不仅限于当前,还能查看过去和未来,比如查看9天前:[root@server1~]# date--date="9 days ago" Sat May 15 14:56:47 CST 2021,或者一周后:[root@server1~]# date--date="next week" Mon May 31 14:59:27 CST 2021。

定制日期和时间格式

date命令提供了丰富的格式选项,如%Y/%m/%d用于指定日期格式,如[root@server1~]# date"+%Y/%m/%d" 2021/05/24,可自定义输出样式。

设置日期和时间

使用--set选项,你可以直接设定日期和时间,如:设定命令: [root@server1~]# date--set="20210625 11:15" Fri Jun 25 11:15:00 CST 2021,灵活调整系统时间。

在脚本中利用date

在编写Shell脚本时,date命令可嵌入变量,如创建日志文件:#!/bin/bash

LOGFILE=/tmp/logs-$(date+%d-%m-%Y_%T)

...,确保记录的时间信息精准无误。

总结

Linux date命令是系统时间管理的得力助手,通过这些示例,你已掌握如何在Linux系统上灵活运用它。无论是查看、设置还是在脚本中嵌入,date命令都为日常操作和系统维护提供了强大的支持。

linux 的date命令及系统时间设置

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。

1、date

名称: date

使用权限:所有使用者

使用方式:

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

说明:

date可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:

时间方面:

%:印出%

%n:下一行

%t:跳格

%H:小时(00-23)

%I:小时(01-12)

%k:小时(0-23)

%l:小时(1-12)

%M:分钟(00-59)

%p:显示本地 AM或 PM

%r:直接显示时间(12小时制,格式为 hh:mm:ss [AP]M)

%s:从 1970年 1月 1日 00:00:00 UTC到目前为止的秒数

%S:秒(00-60)

%T:直接显示时间(24小时制)

%X:相当于%H:%M:%S

%Z:显示时区

日期方面:

%a:星期几(Sun-Sat)

%A:星期几(Sunday-Saturday)

%b:月份(Jan-Dec)

%B:月份(January-December)

%c:直接显示日期与时间

%d:日(01-31)

%D:直接显示日期(mm/dd/yy)

%h:同%b

%j:一年中的第几天(001-366)

%m:月份(01-12)

%U:一年中的第几周(00-53)(以 Sunday为一周的第一天的情形)

%w:一周中的第几天(0-6)

%W:一年中的第几周(00-53)(以 Monday为一周的第一天的情形)

%x:直接显示日期(mm/dd/yy)

%y:年份的最后两位数字(00.99)

%Y:完整年份(0000-9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字,YY为年份后两位数字,ss为秒数

参数:

-d datestr:显示 datestr中所设定的时间(非系统时间)

--help:显示辅助讯息

-s datestr:将系统时间设为 datestr中所设定的时间

-u:显示目前的格林威治时间

--version:显示版本编号

例子:

显示时间后跳行,再

显示目前日期:#date'+%T%n%D'

显示月份与日数: date'+%B%d'

显示日期与设定时间(12:34:56):#date--date'12:34:56'

注意:当你不希望出现无意义的 0时(比如说 1999/03/07),则可以在标记中插入-符号,比如说 date'+%-H:%-M:%-S'会把时分秒中无意义的 0给去掉,像是原本的 08:09:04会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root身分更改了系统时间之后,请记得以 clock-w来将系统时间写入 CMOS中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

例子:修改日期时间

在命令行输入:

Date:显示当前时间 Fri Aug 3 14:15:16 CST 2007

date–s:按字符串方式修改时间

可以只修改日期,不修改时间,输入: date-s 2007-08-03

只修改时间,输入:date-s 14:15:00

同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:

#date-s"2007-08-03 14:15:00"

2、查看硬件时间

# hwclock

设置硬件时间

# hwclock-set-date="07/07/06 10:19"(月/日/年时:分:秒)

3、硬件时间和系统时间的同步

按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。

硬件时钟与系统时钟同步:

# hwclock--hctosys(hc代表硬件时间,sys代表系统时间)

系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)

# hwclock–systohc

linux命令大全之date命令详解

在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。

   1.命令格式:

   date [参数]... [+格式]

2.命令功能:

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

3.命令参数:

   必要参数:

   %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秒(选择性)

选择参数:

   -d字符串显示字符串所指的日期与时间。字符串前后必须加上双引号。

   -s字符串根据字符串来设置日期与时间。字符串前后必须加上双引号。

   -u显示GMT。

   --help在线帮助。

   --version显示版本信息

4.使用说明:

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:%: 打印出%:

   %n:下一行

   %t:跳格

   %H:小时(00..23)

   %I:小时(01..12)

   %k:小时(0..23)

   %l:小时(1..12)

   %M:分钟(00..59)

   %p:显示本地 AM或 PM

   %r:直接显示时间(12小时制,格式为 hh:mm:ss [AP]M)

   %s:从 1970年 1月 1日 00:00:00 UTC到目前为止的秒数

   %S:秒(00..61)

   %T:直接显示时间(24小时制)

   %X:相当于%H:%M:%S

   %Z:显示时区%a:星期几(Sun..Sat)

   %A:星期几(Sunday..Saturday)

   %b:月份(Jan..Dec)

   %B:月份(January..December)

   %c:直接显示日期与时间

   %d:日(01..31)

   %D:直接显示日期(mm/dd/yy)

   %h:同%b

   %j:一年中的第几天(001..366)

   %m:月份(01..12)

   %U:一年中的第几周(00..53)(以 Sunday为一周的第一天的情形)

   %w:一周中的第几天(0..6)

   %W:一年中的第几周(00..53)(以 Monday为一周的第一天的情形)

   %x:直接显示日期(mm/dd/yy)

   %y:年份的最后两位数字(00.99)

   %Y:完整年份(0000..9999)

2.在设定时间方面:

date-s//设置当前时间,只有root权限才能设置,其他只能查看。

   date-s 20080523//设置成20080523,这样会把具体时间设置成空00:00:00

   date-s 01:01:01//设置具体时间,不会对日期做更改

   date-s“01:01:01 2008-05-23″//这样可以设置全部时间

   date-s“01:01:01 20080523″//这样可以设置全部时间

   date-s“2008-05-23 01:01:01″//这样可以设置全部时间

   date-s“20080523 01:01:01″//这样可以设置全部时间

   3.加减:

   date+%Y%m%d        //显示前天年月日

   date+%Y%m%d--date="+1 day" //显示前一天的日期

   date+%Y%m%d--date="-1 day" //显示后一天的日期

   date+%Y%m%d--date="-1 month" //显示上一月的日期

   date+%Y%m%d--date="+1 month" //显示下一月的日期

   date+%Y%m%d--date="-1 year" //显示前一年的日期

   date+%Y%m%d--date="+1 year" //显示下一年的日期

5.使用实例:

实例1:显示当前时间

命令:

复制代码

   

代码如下:

date

   date'+%c'

   date'+%D'

   date'+%x'

   date'+%T'

输出:

复制代码

   

代码如下:

[root@localhost~]# date

   2012年 12月 08日星期六 08:31:35 CST

   [root@localhost~]# date'+%c'

   2012年12月08日星期六 08时34分44秒

   [root@localhost~]# date'+%D'

   12/08/12[root@localhost~]# date'+%x'

   2012年12月08日

   [root@localhost~]# date'+%T'

   08:35:36[root@localhost~]# date'+%X'

   08时35分54秒

   [root@localhost~]#

实例2:显示日期和设定时间

   命令:date--date 08:42:00

   输出:

复制代码

   

代码如下:

[root@localhost~]# date'+%c'

   2012年12月08日星期六 08时41分37秒

   [root@localhost~]# date--date 08:42:00

   2012年 12月 08日星期六 08:42:00 CST

   [root@localhost~]# date'+%c'--date 08:45:00

   2012年12月08日星期六 08时45分00秒

   [root@localhost~]#

   [code]/pp实例3:date-d参数使用

   命令: date-d"nov 22"

   输出:

   [code]

   [root@localhost~]# date-d"nov 22"

   2012年 11月 22日星期四 00:00:00 CST

   [root@localhost~]# date-d'2 weeks'

   2012年 12月 22日星期六 08:50:21 CST

   [root@localhost~]# date-d'next monday'

   2012年 12月 10日星期一 00:00:00 CST

   [root@localhost~]# date-d next-day+%Y%m%d

   20121209

   [root@localhost~]# date-d tomorrow+%Y%m%d

   20121209

   [root@localhost~]# date-d last-day+%Y%m%d

   20121207

   [root@localhost~]# date-d yesterday+%Y%m%d

   20121207

   [root@localhost~]# date-d last-month+%Y%m

   201211

   [root@localhost~]# date-d next-month+%Y%m

   201301

   [root@localhost~]# date-d'30 days ago'

   2012年 11月 08日星期四 08:51:37 CST

   [root@localhost~]# date-d'-100 days'

   2012年 08月 30日星期四 08:52:03 CST

   [root@localhost~]# date-d'dec 14-2 weeks'

   2012年 11月 30日星期五 00:00:00 CST

   [root@localhost~]# date-d'50 days'

   2013年 01月 27日星期日 08:52:27 CST

说明:#后为需要输入的命令

   date命令的另一个扩展是-d选项,该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期。-d选项还可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为-d选项的参数,就可以完成这项任务。

   具体说明如下:

   date-d"nov 22" 今年的 11月 22日是星期三

   date-d'2 weeks' 2周后的日期

   date-d'next monday'(下周一的日期)

   date-d next-day+%Y%m%d(明天的日期)或者:date-d tomorrow+%Y%m%d

   date-d last-day+%Y%m%d(昨天的日期)或者:date-d yesterday+%Y%m%d

   date-d last-month+%Y%m(上个月是几月)

   date-d next-month+%Y%m(下个月是几月)

   使用 ago指令,您可以得到过去的日期:

   date-d'30 days ago'(30天前的日期)

   使用负数以得到相反的日期:

   date-d'dec 14-2 weeks'(相对:dec 14这个日期的两周前的日期)

   date-d'-100 days'(100天以前的日期)

   date-d'50 days'(50天后的日期)

实例4:显示月份和日数

   命令:date '+%B%d'

   输出:

复制代码

   

代码如下:

[root@localhost~]# date'+%B%d'

   十二月

   08[root@localhost~]#

实例5:显示时间后跳行,再显示目前日期

   命令:date'+%T%n%D'

   输出:

复制代码

   

代码如下:

[root@localhost~]# date'+%T%n%D'

   09:00:30

   12/08/12

   [root@localhost~]#

阅读剩余
THE END