linux命令-date显示或设置时间

简介
昨天在处理单点认证问题的时候,由于服务器的时间比真实的时间慢了几分钟,导致了认证一直不成功,就采用date去设置了一下时间,顺便把date指令学习了一下

帮助信息
在终端输入date –help查看帮助信息
date –help
这里写图片描述

指令

date [OPTION]... [+FORMAT]
or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

选项
-d 按照指定的字符串输出时间,如date -d “1990/09/18”
-f 逐行输出指定文件中的时间
-I[TIMESPEC] 以ISO 8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
-r 显示指定文件的最后修改时间
-R 按照RFC-2822日期格式显示时间
-s 按照指定字符串设置时间
-u 按照Coordinated Universal Time (UTC)格式设置或输出时间

format参数格式
%% a literal %
注:输出一个%符号
%a locale’s abbreviated weekday name (e.g., Sun)
注:星期几的缩写,如Sat周六,Sun周日
%A locale’s full weekday name (e.g., Sunday)
注:星期几的全称,如Sunday周日
%b locale’s abbreviated month name (e.g., Jan)
注:月份的缩写,如Aug八月
%B locale’s full month name (e.g., January)
注:月份的全称,如September九月
%c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)
注:输出日期和时间
%C century; like %Y, except omit last two digits (e.g., 20)
注:输出世纪,年份除以一百后取整数,如2016换算后就是20世纪。。。
%d day of month (e.g., 01)
注:一个月中的第几天,用两位数表示。如1号的话,显示01
%D date; same as %m/%d/%y
注:按照%m/%d/%y格式输出日期,如date “+%D” 输出结果是09/08/16
%e day of month, space padded; same as %_d
注:一个月中的第几天,数字表示。如1号的话,显示1
%F full date; same as %Y-%m-%d
注:按照%Y-%m-%d格式输出完整日期,如date “+%F”,2016-09-08
%g last two digits of year of ISO week number (see %G)
注:年份(yy),输出年份的后两位数字
%G year of ISO week number (see %V); normally useful only with %V
注:年份(yyyy)
%h same as %b
注:输入月份的缩写,同%b
%H hour (00..23)
注:24小时制,00~23
%I hour (01..12)
注:12小时制,01~12,如date -d ‘00:00:11’ “+%I”,会显示12
%j day of year (001..366)
注:一年中的第几天,三位数字显示
%k hour, space padded ( 0..23); same as %_H
注:24小时制,用数字表示,0~23
%l hour, space padded ( 1..12); same as %_I
注:12小时制,用数字表示,如date -d ‘01:01:11’ “+%I”,输出01
%m month (01..12)
注:月份,用两位数字表示,如一月份用01表示
%M minute (00..59)
注:分钟,用两位数字表示
%n a newline
注:换行
%N nanoseconds (000000000..999999999)
注:输出纳秒
%p locale’s equivalent of either AM or PM; blank if not known
注:输出大写的当前时间的上午或下午,如AM,PM
%P like %p, but lower case
注:输出小写的当前时间的上午或下午,如am,pm
%r locale’s 12-hour clock time (e.g., 11:11:04 PM)
注:按照12小时制输出时间,如date “+%r”,输出11:44:57 AM
%R 24-hour hour and minute; same as %H:%M
注:按照24小时制输出小时和分钟,和%H:%M同种效果
%s seconds since 1970-01-01 00:00:00 UTC
注:自1970-01-01 00:00:00 UTC开始到现在的秒数
%S second (00..60)
注:秒,00~60
%t a tab
注:一个tab,相当于输出8个空格
%T time; same as %H:%M:%S
注:输出时间,和%H:%M:%S同效果,date “+%F %T”,输出2016-09-08 11:48:27
%u day of week (1..7); 1 is Monday
注:按照数字输出星期几,1~7,1是周一
%U week number of year, with Sunday as first day of week (00..53)
注:一年中的第几周,周日是一周的第一天,00~53
%V ISO week number, with Monday as first day of week (01..53)
注:ISO格式的周次,一年中的第几周,周一是一周的第一天,00~53
%w day of week (0..6); 0 is Sunday
注:按照数字输出星期几,0~6,0是周日
%W week number of year, with Monday as first day of week (00..53)
注:一年中的第几周,周一是一周的第一天,00~53
%x locale’s date representation (e.g., 12/31/99)
注:输出日期,例如12/31/99,
%X locale’s time representation (e.g., 23:13:48)
注:输出时间,如23:13:48
%y last two digits of year (00..99)
注:输出年份的后两位
%Y year
注:输出年份
%z +hhmm numeric time zone (e.g., -0400)
注:RFC-2822 风格数字格式时区
%:z +hh:mm numeric time zone (e.g., -04:00)
注:时区
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
注:时区
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
注:时区
%Z alphabetic time zone abbreviation (e.g., EDT)
注:时区(e.g., EDT), 无法确定时区则为空

示例
输出时间
输出当前时间

#date
Thu Sep  8 11:59:49 CST 2016

按照指定格式输出时间

#date "+%Y-%m-%d %H:%M:%S"
2016-09-08 13:48:24

输出指定的字符串

#date -d "2016-09-08 13:48:24" "+%F %T"
2016-09-08 13:48:24

#date -d "2016-09-08 13:48:24" "+%x"
09/08/2016

--明天--
# date -d next-day "+%F %T"
2016-09-09 13:59:38

# date -d tomorrow "+%F %T"
2016-09-09 14:05:15

--昨天--
# date -d last-day "+%F %T"
2016-09-07 14:03:56

# date -d yesterday "+%F %T"
2016-09-07 14:03:56

--更多--
# date -d next-month "+%F %T"
2016-10-08 14:06:42

# date -d next-year "+%F %T"
2017-09-08 14:07:26

# date -d "5 days ago" "+%F %T"
2016-09-03 14:08:31

# date -d week "+%F %T"
2016-09-15 14:17:37

# date -d "Nov 12 - 2 days" "+%F %T"
2016-11-10 00:00:00

# date -d "12/12 - 2 days" "+%F %T"
2016-12-10 00:00:00

# date -d "2 days" "+%F %T"
2016-09-10 14:24:34

设置时间

--设置完整的时间--
#date -s "2016-09-10 14:24:34"
--设置日期--
#date -s "2016-09-10"
#date -s "2016/09/10"
#date -s "09/10/2016"
这样设置的话,由于没有设置时间,所以时间都是00:00:00

显示文件最后修改时间

#date -r /bin
Wed Aug 31 15:58:16 HKT 2016

显示文件的时间

# more date.txt 
2016-02-10 19:11:11
2016-10-11 17:22:33
2014/12/11 13:11:11

# date -f date.txt
Wed Feb 10 19:11:11 HKT 2016
Tue Oct 11 17:22:33 HKT 2016
Thu Dec 11 13:11:11 HKT 2014

# date -f date.txt "+%F %T"
2016-02-10 19:11:11
2016-10-11 17:22:33
2014-12-11 13:11:11
展开阅读全文

没有更多推荐了,返回首页