linux shell取当前日期,时间戳秒/毫秒 【转】
版权声明:
本文为博主学习过程中整理发布,如有侵权请告知
更新时间:
2022-05-09 21:48:23
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
获取当前日期+时间
要获取当前日期+时间,返回如1970-01-01 00:00:00则使用如下代码:
currentTime =`date "+%Y-%m-%d %H:%M:%S"`
输出2019-04-29 09:49:48
也可以使用简写:
currentTime =`date "+%F %T"`
格式可以根据需要修改,如只获取日期:
currentTime =`date "+%Y-%m-%d"`
只获取时间:
currentTime =`date "+%H:%M:%S"`
获取1970-01-01 00:00:00到当前时间的秒数
获取当前时间的秒数如1556503057:
cur_sec=`date '+%s'`
输出:1556503057
获取1970-01-01 00:00:00到当前时间的纳秒
cur_ns=`date '+%N'`
输出:903987355
获取当前时间的纳秒级时间戳
cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
输出:1556503676106
获取某个时间的秒数
date -d "2010-10-18 00:00:00" +%s
输出:1287331200
将时间戳转换为时间
date -d @1287331200
输出:Mon Oct 18 00:00:00 CST 2010
如果想将其转换为形如2010-10-18 00:00:00的格式则使用如下方式:
date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"
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 |