date命令

Linux date命令

1.date命令man手册说明

DATE(1)                                                                FSF                                                               DATE(1)

NAME
       date - 打印或设置系统日期和时间
总览
       date [选项]... [+格式]
       date [选项] [MMDDhhmm[[CC]YY][.ss]]
描述
       根据指定格式显示当前时间或设置系统时间.

       -d, --date=STRING
              显示由 STRING 指定的时间, 而不是当前时间

       -f, --file=DATEFILE
              显示 DATEFILE 中每一行指定的时间, 如同将 DATEFILE 中的每行作为 --date 的参数一样

              -I, --iso-8601[=TIMESPEC] 按照 ISO-8601 的日期/时间格式输出时间.

              TIMESPEC=`date' (或者不指定时)仅输出日期,等于 `hours', `minutes', 或`seconds' 时按照指定精度输出日期及时间.

       -r, --reference=FILE
              显示 FILE 的最后修改时间

       -R, --rfc-822
              根据 RFC-822 指定格式输出日期

       -s, --set=STRING
              根据 STRING 设置时间

       -u, --utc, --universal
              显示或设置全球时间(格林威治时间)

       --help 显示本帮助文件并退出

       --version
              显示版本信息并退出

       格式 FORMAT 控制着输出格式. 仅当选项指定为全球时间时本格式才有效。 分别解释如下:

       %%     文本的 %

1.4、格式

格式说明实例
%a缩写的星期名Thu
%A全星期名Thursday
%b缩写的月名Aug
%B全月名August
%c日期和时间Thu Aug 23 14:55:02 2001
%C年/100 [00,99]20
%d十进制表示的每月的第几天 [01,31]16
%D月/天/年 [m%/d%/y%]06/16/12
%e十进制表示的每月的第几天 ,一位数前加空格[1,31]10
%F年-月-日 [Y%-m%-d%]2012-06-16
%gISO 8601使用基于周的年的后两位数字12
%GISO 8601使用基于周的年2012
%h简写的月份名 ,与%b相同Aug
%H24小时制的小时 [00,23]14
%I12小时制的小时 [01,12]02
%j每年的第几天 [001,366]235
%k24小时制的小时 [0,23]5
%l12小时制的小时 [1,12]5
%m十进制的月 [01,12]08
%M分钟 [00,59]55
%n换行符
%N十亿分之一秒,纳秒 [000000000,999999999]000000001
%pAM/PMPM
%Pam/pmpm
%r本地时间:(12时制)11:01:23 AM
%R与“%H:%M”相同11:01
%s自’00:00:00 1970-01-01 UTC’ 的秒数1339819819
%S秒 [00,60]02
%t水平制表符
%T与“%H:%M:%S”相同11:01:23
%uISO 8601的星期,星期一为1,[1,7]2
%U周数 ,以周日为一周开始 [00,53]33
%VISO 8601周数 [01,53]07
%w星期,星期天为0. [0,6]4
%W周数,以星期一为一周开始 [00,53]34
%x标准日期06/16/12
%X标准时间14:55:02
%y年份的后两位数字 [00,99]12
%Y2012
%zISO 8601格式的UTC偏移量-0500
%Z时区名EST
%%百分号%

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

2.部分date命令

个人比较常用:

date +%Y-%m-%d” “%a” “%X 12进制显示当前时间

[yl@centos ~]$ date +%Y-%m-%d” “%a” “%X
2018-04-15 Sun 06:18:59 PM

date +%Y-%m-%d” “%a” “%H:%M:%S 24进制显示当前时间

[yl@centos ~]$ date +%Y-%m-%d” “%a” “%H:%M:%S
2018-04-15 Sun 18:21:30

举例:

很多都是参考的:https://www.cnblogs.com/wangkangluo1/archive/2012/11/20/2778554.html

date # 以默认格式显示当前日期
date -d “1 day” # 以默认格式显示一天后的日期(还可以 second,minute,..直到year,可以加s表示复数)
date -d “1970-01-01 UTC 1128621784 seconds” # 以默认格式显示从1970-01-01 UTC起后1128621784秒的日期
date -d “3 day ago” +%Y%m%d # 以指定格式显示3天前的日期
date -d “1 month” +%Y-%m-%d # 以指定格式显示一个月后的日期
date -d “1 month” +%s # 以指定格式显示一个月后的日期(此格式为从1970年1月1日00:00:00到目前经历的秒数,%S为当前的秒数(0~59))
date -d “1970-01-01 CST 1 second” +%s # 显示从1970-01-01 CST起1秒后的秒数(-28799,注意时区”CST”)
date -d “2 hours” # 2小时前
date -d “1 minutes” # 1分钟前
date -d “2 seconds” # 2秒钟前

date -d “20120616” +%s # 以指定格式显示日期

date

[yl@centos ~]$ date
Sun Apr 15 17:27:17 CST 2018

date -d “1 day”

[yl@centos ~]$ date -d “1 day”
Mon Apr 16 17:39:51 CST 2018

date -d “1 year”

[yl@centos ~]$ date -d “1 year”
Mon Apr 15 17:41:02 CST 2019

date -d “1 year 1 month 1 week 1 H 1 minute”

[yl@centos ~]$ date -d “1 year 1 month 1 week 1 H 1 minute”
Wed May 22 17:01:00 CST 2019

上面的可以根据需要设置隔现在多长时间后的时间

date -d “1970-01-01 UTC 1128621784 seconds”

[yl@centos ~]$ date -d “1970-01-01 UTC 1128621784 seconds”
Fri Oct 7 02:03:04 CST 2005

以默认格式显示从1970-01-01 UTC起后1128621784秒的日期

date -d “3 day ago” +%Y%m%d

[yl@centos ~]$ date -d “3 day ago” +%Y%m%d
20180412

date -d “20120616” +%s

[yl@centos ~]$ date -d “20120616” +%s
1339776000

以指定格式显示日期

原文链接http://hi.baidu.com/toyou234/item/7d51a9db00b808e154347fbe

3.date实用举例:

date实用举例:

#显示时区
[cnscn@root /home/cnscn/backup]# date +%Z
CST
#显示世纪
[cnscn@root /home/cnscn/backup]# date +%C
20

====================设置===========================

设置时间为: 2005年02月22日09:10:46

[cnscn@root /home/cnscn/backup]# date 022209102005.46           #月 日 时 分 年. 秒
二  2月22 09:10:46 CST 2005

[cnscn@root /home/cnscn/backup]# date -s “+3 hours”                #将时间增加3小时

二  2月22 09:46:14 CST 2005

[cnscn@root /home/cnscn/backup]# date -s “-40 minutes”            #将时间减少40分钟

二  2月22 09:06:35 CST 2005

[cnscn@root /home/cnscn/backup]# date -s  “+1 year”                #时间增加1年

三  2月22 09:14:55 CST 2006

[cnscn@root /home/cnscn/backup]# date -s  “-1 year”                 #时间减少一年

二  2月22 09:15:02 CST 2005

======================按日期显示============================
[cnscn@root /home/cnscn/backup]# date -d  “+1 year”
三  2月22 09:57:46 CST 2006

[cnscn@root /home/cnscn/backup]# date -d “-1 month”
六  1月22 09:49:08 CST 2005

[cnscn@root /home/cnscn/backup]# date -d “-1 month” +%s
1106358557

[cnscn@root /home/cnscn/backup]# date -d “7 days ago”           #显示7天前的时间

二  2月15 09:16:09 CST 2005

[cnscn@root /home/cnscn/backup]# date -d “7 days ago”  +%s   #显示7天前时间的秒值

1108430178

[cnscn@root /home/cnscn/backup]# date -d “7 days”                #显示7天后时间的秒值

二  3月  1 09:17:11 CST 2005

[cnscn@root /home/cnscn/backup]# date -d “7 days”  +%s        #显示7天后时间的秒值

1109639824

=======================================================

显示当前系统时间和日期

$date

完整的日期时间显示

[cnscn@root /home/cnscn/backup]# date +%c
2005年02月22日  星期二  09时32分19秒

以格林威治标准时间显示目前时间和日期

[cnscn@root /home/cnscn/backup]# date -u
二  2月22 01:38:20 UTC 2005

以当地习惯显示日期

[cnscn@root /home/cnscn/backup]# date +%x
2005年02月22日

以mm/dd/yy格式显示系统日期

[cnscn@root /home/cnscn/backup]# date +%D
02/22/05

=========================================================

英文全称月份

[cnscn@root /home/cnscn/backup]# date +%B
二月

英文缩写月份

[cnscn@root /home/cnscn/backup]# date +%b

2月

今年第几天

[cnscn@root /home/cnscn/backup]# date +%j
053

============================================================

时:分:秒

[cnscn@root /home/cnscn/backup]# date +%T09:24:07

加上AM与PM

[cnscn@root /home/cnscn/backup]# date +%T%p
09:24:07上午

[cnscn@root /home/cnscn/backup]# date +%r
09:34:44 上午

=========================================================

周几

[cnscn@root /home/cnscn/backup]# date +%w
2

本地格式周几全称

[cnscn@root /home/cnscn/backup]# date +%A
星期二

本地格式周几缩写

[cnscn@root /home/cnscn/backup]# date +%a

#今年第几周
[cnscn@root /home/cnscn/backup]# date +%U
08

1)把时间转成秒
**$**date -d “20061206 07:08” +%s
1165360080
2)把秒转换成时间
date2006070611:57:18CST d a t e 2006 年 07 月 06 日 星 期 四 11 : 57 : 18 C S T date -d “now” +%s
1152158238
dated197001011152158238secondsUTC2006070611:57:18CST d a t e − d “ 19700101 1152158238 s e c o n d s U T C ” 2006 年 07 月 06 日 星 期 四 11 : 57 : 18 C S T date -d “@1152158238”

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值