前言
计算机系统时间是从 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/