首先看一下shell中的date命令。
它是用来显示或设置系统时间与日期。
应用格式
date(选项)(参数)
常用选项:
-d<字符串>(--date=STRING):显示字符串所指的日期与时间。字符串前后必须加上引号;
-s<字符串>(--set=STRING):根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示UTC时间,与GMT没有什么不同都是伦敦本地时,没有这个参数,默认显示CST时间
参数:
+ 指定时间日期的显示格式
[NSOS1.1 ~]# date +"%Y-%m-%d"
2016-03-27
[NSOS1.1 ~]# date +"%Y-%m-%d" -d "-1 day" #从昨天起开始算往前推n天
2016-03-26
[NSOS1.1 ~]# date +"%Y-%m-%d" -d "-1 month"
2016-02-27
[NSOS1.1 ~]# date +"%Y-%m-%d" -d "-1 month -2 day"
2016-02-25
[ITM4.5 ~]# date +"%Y-%m-%d-%H:%M:%S"
2016-03-30-16:44:31
[ITM4.5 ~]# date +"%H:%M:%S"
16:44:31
上述显示的都是CST时间(central standard time),所谓的CST时间可以代表四个不同的时区:
• USAcentral standard time
• Australiacentral standard time
• chinastandard time
• cubastandard time
北京时间(china standard time),是中国的标准时间,在时区划分上属于东八区,比协调时间或世界标准时间(UTC,Coordinated Universal Time)早8个小时,记为UTC+8。而美国时间记为UTC-6。
UTC是零时区的时间,UTC + 时区差=本地时间。UTC时间开始自1970年1月1日0时0分0秒。
[root@localhost~]# date -d @0 -u
ThuJan 1 00:00:00 UTC 1970
在类UNIX系统中,日期被存储为一个整数,其大小为自UTC起流逝的秒数(称为时间戳)。可以使用date命令将日期时间转换为时间戳,或将时间戳转换为日期时间格式。
[root@localhost~]# date -d '2019-05-23 17:51:26' +%s
1558605086
[root@localhost~]# date -d @1558605086
ThuMay 23 17:51:26 CST 2019
[root@localhost~]# date -d @1558605086 -u
ThuMay 23 09:51:26 UTC 2019
[root@localhost~]#