(转)shell常用时间戳的获取和转换时间

原文:https://blog.csdn.net/df0128/article/details/89669834

1、获取当前日期+时间
要获取当前日期+时间,返回如1970-01-01 00:00:00则使用如下代码:

currentTime =`date "+%Y-%m-%d %H:%M:%S"`
1
输出2019-04-29 09:49:48
也可以使用简写:

currentTime =`date "+%F %T"`
1
格式可以根据需要修改,如只获取日期:

currentTime =`date "+%Y-%m-%d"`
1
只获取时间:

currentTime =`date "+%H:%M:%S"`
1
2、获取1970-01-01 00:00:00到当前时间的秒数
获取当前时间的秒数如1556503057:

cur_sec=`date '+%s'`
1
输出:1556503057

3、获取1970-01-01 00:00:00到当前时间的纳秒
cur_ns=`date '+%N'`
1
输出:903987355

4、获取当前时间的纳秒级时间戳
cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
1
输出:1556503676106

5、获取某个时间的秒数
date -d "2010-10-18 00:00:00" +%s
1
输出:1287331200

6、将时间戳转换为时间
date -d @1287331200
1
输出:Mon Oct 18 00:00:00 CST 2010
如果想将其转换为形如2010-10-18 00:00:00的格式则使用如下方式:

date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"
1
7、format格式说明表如下
格式 说明
%% %的转义
%a 当地星期几的缩写,例如Sun、日
%A 当地星期几的全称,例如Sunday、星期二
%b 当地月份的缩写,例如Jan、12月
%B 当地月份的全称,例如January、十二月
%c 当地日期和时间,例如Thu Mar 3 23:05:25 2005,2018年12月18日 星期二 15时46分23秒
%C 输出世纪,例如现在是2
%d 当前月份的第几天,例如18(2018-12-18)
%D 日期,格式与%m%d%y,年为两位数,例如12/18/18
%e 当前月份的第几天,例如08(2018-12-08)
%F 完整格式的日期,与%Y-%m-%d相同,例如2018-12-18
%g 年份中的后两位数,例如18
%G 年
%h 与%b一样
%H 小时(00…23),即24小时制
%I 小时(01…12),即12小时制
%j 一年中的第几天(001…366)
%k 小时(1…23)
%l 小时(1…12)
%m 月份(01…12)
%M 分钟(01…59)
%n 新行
%N 纳秒(000000000…999999999)
%p 当地上午或下午,例如PM、下午
%P 当地上午或下午(小写),例如pm、下午
%q 第几季度(1…4)
%r 当地12小时制的时间格式,例如下午 04时06分24秒
%R 24小时制的时分(%H:%M),例如16:07
%s 从1970-01-01 00:00:00 UTC到现在的秒数
%S 当前分钟的秒数(00…59)
%T 等价%H:%M:%S,时分秒
%u 从星期一开始数,一周中的第几天(1…7)
%U 从星期日开始数,一年中的第几周(00…53)
%V ISO周数,从周一开始数(01…53)
%w 从周日开始数,一周中的第几天(0…6)
%W 从星期一开始数,一年中的第几周(00…53)
%x 当地日期,例如2018年12月18日
%X 当地时间,例如16时16分17秒
%y 年份的后两位数(00…99)
%Y 年份
%z 时区,+hhmm,例如东八区+0800
%? 时区,+hh::mm,例如东八区+08:00
%:? 时区,+hh::mm:ss,例如东八区+08:00:00
%Z 时区的缩写,例如东八区CST
————————————————

 
技术链接
原文地址:https://www.cnblogs.com/liujiacai/p/15219416.html