首页 > 服务器学习 > Linux > Linux中的时间设置和格式化命令date
2016
12-16

Linux中的时间设置和格式化命令date

用法:date [选项] [+格式]

-d 字符串:显示指定字符串所描述的时间,而非当前时间

-f 日期文件:从日期文件中按行读入时间描述

-r 文件名:显示文件指定文件的最后修改时间

-s 字符串:设置当前系统时间为字符串所描述的时间

  使用命令ntpdate asia.pool.ntp.org可以自动设置系统时间为亚洲标准时间。

系统识别的字符串的时间格式

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″ //设置全部时间

  格式(格式前面一定要有一个加号+):

%Y:年份(以四位数来表示)  %y:年份最后两位数位 (00-99)

%m:月份的数字表示(01-12)  %B:月份的完整英文名称  %b:月名英文缩写  %h:等于%b

%d:月份里的第几天(例如:01)

%H:小时(00-23)  %I:小时(00-12)  %k:小时(0-23)  %l:小时(1-12)

%p:显示"AM"或者"PM",未知时输出为空  %P:与%p 类似,但是输出小写字母

%M:分(00-59)

%S:秒(00-60)

%r:12小时时钟时间 (如:06:11:04 PM)

%R:24小时时间的时和分,等价于 %H:%M

%T:时间,等于%H:%M:%S

%a:星期名英文缩写  %A:星期名英文全称  %u:星期的数字表达,1代表星期一  %w:一星期中的第几日(0-6),0 代表周日

%F:固定的含年月日显示格式,等价于 %Y-%m-%d

%D:固定的含年月日显示格式;等于%m/%d/%y

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

%x:固定日期格式 (如:12/31/2016)

%X:固定时间格式 (如:09:13:48 PM)

%W:一年中的第几周,以周一为每星期第一天(00-53)

%U:一年中的第几周,以周日为每星期第一天(00-53)

%s:自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数

%C:世纪;通常年份的前两位数字(例如:20)

%n:换行

%t:输出制表符 Tab

  以下可选标记可以跟在"%"后:

- (连字符)不填充该域

_ (下划线)以空格填充

0 (数字0)以0 填充

^ 如果可能,使用大写字母

# 如果可能,使用相反的大小写

  日期的加减

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" //显示下一年的日期

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS。如果要确保修改生效可以执行如下命令。

clock –w:强制把系统时间写入CMOS。

clock –s:强制读取CMOS时间并设置为当前系统时间

clock –r:读取打印硬件时间

CMOS指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片,是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。用户通常不会关心CMOS的硬件问题,而只关心写在CMOS上的信息,也就是BIOS的设置问题,其中提到最多的就是系统故障时拿掉主板上的电池,进行CMOS放电操作,从而还原BIOS设置。

cal命令可以用来显示公历日历:cal [选项][月份][年份]

选项后如只有时间参数,则表示年份(1-9999),如有两个时间参数,则表示月份和年份

-1 显示一个月的月历

-3 显示系统前一个月,当前月,下一个月的月历

-s 显示星期天为一个星期的第一天,默认的格式

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

-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

-y 显示当前年份的日历

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。