博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
date 命令及实例讲解
阅读量:6693 次
发布时间:2019-06-25

本文共 5025 字,大约阅读时间需要 16 分钟。


1、man手册
1.1、调用格式
  date [选项] ... [+格式]
  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
 
1.2、功能
    按格式显示时间或设置系统时间。
 
1.3、选项
-d
--date=
STRING
显示STRING指示的时间,STRING是比较随性的可读的字符串,比如说“2012-06-16 18:31:00”或者“next Thursday”,这个字符串通常包含日历时间、时间、星期、日期、相对时间,相对日期或者数字。
-f
--file=
DATEFILE
     和-d类似,对文件DATEFILE里的每一行做date -d操作
-ITIMESPEC
--iso-8601[=
TIMESPEC]
以ISO 8601格式显示时间/日期。TIMESPEC=`date'只显示日期, `hours', `minutes', or `seconds'显示相应的精度. 
--iso-8601不带TIMESPEC时等同于`date'.
-r
--reference=
FILE
显示文件FILE最后修改的时间
-R
--rfc-822
输出与RFC-822相适应的时间字符串
-s
--set=
STRING
设置STRING指定的时间
-u
--utc
--universal
输出或者设置UTC时间
--help
显示命令帮助
--version
输出版本信息
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

%g

ISO 8601使用基于周的年的后两位数字 

12

%G

ISO 8601使用基于周的年

2012

%h

简写的月份名 ,与%b相同

Aug

%H

24小时制的小时 [00,23]

14

%I

12小时制的小时 [01,12]

02

%j

每年的第几天 [001,366]

235

%k

24小时制的小时 [0,23]

5

%l

12小时制的小时 [1,12]

5

%m

十进制的月 [01,12]

08

%M

分钟 [00,59]

55

%n

换行符

 

%N

十亿分之一秒,纳秒 [000000000,999999999]

000000001

%p

AM/PM 

PM

%P

am/pm

pm

%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

%u

ISO 8601的星期,星期一为1,[1,7]

2

%U

周数 ,以周日为一周开始 [00,53]

33

%V

ISO 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

%Y

2012

%z

ISO 8601格式的UTC偏移量

-0500

%Z

时区名

EST

%%

百分号

%

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
 
2、举例
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
#date -d '1970-01-01 UTC 1199116800 seconds'
2008年 01月 01日 星期二 00:00:00 CST
#export LANG=en
#date -d '19700101 UTC 1199116800 seconds'  
Tue Jan  1 00:00:00 CST 2008mi 

 


原文链接

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)把秒转换成时间
   $ date
     2006年07月06日 星期四11:57:18 CST
   $ date -d "now" +%s
     1152158238
   $ date -d "19700101  1152158238 seconds UTC"
     2006年07月06日 星期四11:57:18 CST
   $ date -d "@1152158238"

转载地址:http://xmcoo.baihongyu.com/

你可能感兴趣的文章
PE文件头
查看>>
VC获取物理网卡的MAC地址
查看>>
Web学习>>一些专业名词
查看>>
找出由‘1’组成的孤岛
查看>>
c#中获取路径方法
查看>>
Java中的数组和方法
查看>>
异步获取CMD命令行输出内容
查看>>
AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令
查看>>
第九章结构体与公用体
查看>>
筛法求素数的最优算法+解释
查看>>
.net使用sqllite实例
查看>>
七牛直播云-m3u8格式直播
查看>>
sqlserver2008 创建定时任务
查看>>
as3+php上传图片的三种方式
查看>>
sqlserver master恢复
查看>>
看这一篇就够了,css选择器知识汇总
查看>>
[译]科学计算可视化在andriod与ios实现的工具
查看>>
开始blog
查看>>
3dmax2012卸载/安装失败/如何彻底卸载清除干净3dmax2012注册表和文件的方法
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇)
查看>>