前言
计算机系统时间是从 1970-01-01 00:00:00
开始计算的。
脚本
获取当前日期+时间
1 2 3 4 5 6 7 8
| # 2022-05-16 21:05:53 currentTime =`date "+%Y-%m-%d %H:%M:%S"` # 简写 currentTime =`date "+%F %T"` # yyyy-MM-dd currentTime =`date "+%Y-%m-%d"` # HH:mm:ss currentTime =`date "+%H:%M:%S"`
|
获取时间戳
1 2 3 4 5 6
| # 时间戳(秒) 输出:1652706914 seconds=`date '+%s'` # 获取时间纳秒数 nanoseconds=`date '+%N'` # 获取当前时间的纳秒级时间戳(不建议使用) current_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
|
获取某个时间的秒数
1
| date -d "2022-05-16 00:00:00" +%s
|
将时间戳转换为时间
1 2 3 4
| #Mon May 16 21:15:14 CST 2022 date -d @1652706914 # yyyy-MM-dd HH:mm:ss date -d "1970-01-01 UTC 1652706914 seconds" "+%F %T"
|
格式 |
说明 |
%% |
%的转义 |
%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://github.com/maxzhao-it/blog/post/805f48c5/