美文网首页
Linux命令——date

Linux命令——date

作者: mykgzy | 来源:发表于2016-09-18 16:23 被阅读0次

基本用法

date [选项] 显示时间格式(以+开头,后面接格式)date可以用来显示和设定系统的日期和时间。

使用说明:

命令参数:

-d, –date=STRING 显示STRING指定的时间
-f, –file=DATEFILE 类似–date参数显示DATEFILE文件中的每行时间
-r, –reference=FILE 显示文件的最后修改时间
-R, –rfc-2822 以RFC-2822兼容日期格式显示时间
-s, –set=STRING 设置时间为STRING
-u, –utc, –universal 显示或设定为Coordinated Universal Time时间格式

#date //显示当前日期 
#date -s //设置当前时间,只有root权限才能设置,其他只能查看。 
#date -s 20061010 //设置成20061010,这样会把具体时间设置成空00:00:00 
#date -s 12:23:23 //设置具体时间,不会对日期做更改 
#date -s “12:12:23 2006-10-10″ //这样可以设置全部时间 

时间显示参数

不加任何参数

root@ubuntu:~# date
Sun Sep 18 00:20:35 PDT 2016

直接打印可读性很差,因此要各种参数组合
当添加%表示时间的显示格式,当不加%则表示时间的设定。只有类似root用户才有权限设定系统时间。
并且当修改了系统时间后,需要用clock -w将系统时间写入CMOS,以防止下次启动时间不对。
时间格式为MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数

时间显示格式

•%% 字符%
•%a 星期的缩写(Sun..Sat)
•%A 星期的完整名称 (Sunday..Saturday)
•%b 月份的缩写(Jan..Dec)
•%B 月份的完整名称(January..December)
•%c 日期时间(Sat Nov 04 12:02:33 EST 1989)
•%C 世纪(年份除100后去整) [00-99]
•%d 一个月的第几天(01..31)
•%D 日期(mm/dd/yy)
•%e 一个月的第几天 ( 1..31)
•%F 日期,同%Y-%m-%d
•%g 年份(yy)
•%G 年份(yyyy)
•%h 同%b
•%H 小时(00..23)
•%I 小时(01..12)
•%j 一年的第几天(001..366)
•%k 小时( 0..23)
•%l 小时( 1..12)
•%m 月份(01..12)
•%M 分钟(00..59)
•%n 换行
•%N 纳秒(000000000..999999999)
•%p AM or PM
•%P am or pm
•%r 12小时制时间(hh:mm:ss [AP]M)
•%R 24小时制时间(hh:mm)
•%s 从00:00:00 1970-01-01 UTC开始的秒数
•%S 秒(00..60)
•%t 制表符
•%T 24小时制时间(hh:mm:ss)
•%u 一周的第几天(1..7); 1 表示星期一
•%U 一年的第几周,周日为每周的第一天(00..53)
•%V 一年的第几周,周一为每周的第一天 (01..53)
•%w 一周的第几天 (0..6); 0 代表周日
•%W 一年的第几周,周一为每周的第一天(00..53)
•%x 日期(mm/dd/yy)
•%X 时间(%H:%M:%S)
•%y 年份(00..99)
•%Y 年份 (1970…)
•%z RFC-2822 风格数字格式时区(-0500)
•%Z 时区(e.g., EDT), 无法确定时区则为空

root@ubuntu:~# date +"%H%M%S"
003528
root@ubuntu:~# date +"%H-%M-%S"
00-36-39
root@ubuntu:~# date +"%H:%M:%S"
00:37:08
root@ubuntu:~# date +"%H:%M:%S %Z"
00:37:38 PDT
root@ubuntu:~# date +"%H:%M:%S %t%Z"
00:37:44        PDT
root@ubuntu:~# date +"%H:%M:%S %n%Z"
00:37:51 
PDT
root@ubuntu:~# date +"%I:%M:%S %p"  
12:39:41 AM
root@ubuntu:~# date +"%A %B %d"
Sunday September 18
root@ubuntu:~# date +"%a %b %d" 
Sun Sep 18

当希望把日期里的0去掉时,则可以在%和参数名之间添加-

root@ubuntu:~# date '+%-H:%-M:%-S' 
0:45:46

date -d详细用法

root@ubuntu:~# date
Sun Sep 18 01:11:45 PDT 2016
root@ubuntu:~# date -d next-day +%Y%m%d
20160919
root@ubuntu:~# date -d last-day +%Y%m%d 
20160917
root@ubuntu:~# date -d yesterday +%Y%m%d 
20160917
root@ubuntu:~# date -d tomorrow +%Y%m%d 
20160919
root@ubuntu:~#  date -d last-month +%Y%m 
201608
root@ubuntu:~# date -d next-month +%Y%m 
201610
root@ubuntu:~# date -d next-year +%Y 
2017

date -d "x days ago" +%Y%m%d x用数字代替,如果需要几天前的直接写正数,如果要几天后的日期直接写负数即可; date -d "x weeks ago" +%Y%m%d x用数字代替,如果需要几周前的直接写正数,如果要几周后的日期直接写负数即可; date -d "x years ago" +%Y%m%d x用数字代替,如果需要几年前的直接写正数,如果要几年后的日期直接写负数即可;

修改时区

可以直接用tzselect命令来修改时区,修改完时区后需要将TZ='Asia/Shanghai'; export TZ写入到profile文件中

root@ubuntu:~# vi .profile 
# ~/.profile: 
executed by Bourne-compatible login shells.

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi
mesg n || true
TZ='Asia/Shanghai'; export TZ

root@ubuntu:~# logout 
root@ubuntu:~# date
Sun Sep 18 16:20:06 CST 2016

相关文章

网友评论

      本文标题:Linux命令——date

      本文链接:https://www.haomeiwen.com/subject/vbfgettx.html