shell计算不同精度的时间差(毫秒差,天数差和周数差)

date命令可以用于shell日期和时间计算

 

$ date --date="$time_input" +$format_output

输入时间为$time_input 其格式可以为YYYY-MM-DD HH:MM:SS.SSSS 或者更加灵活。

例如:2009-01-01T09:34:59.9999Z  或者 2009-01-01 09:34:59.9999 或者 20090101 093459

输出格式为$format_output 其格式可以为%Y-%M-%D  %h:%m:%s.%N

说明如下:(来自https://www.cnblogs.com/hurryup/articles/9037218.html)

%H : 小时(00...23)
%I : 小时(01...12)
%k : 小时(0...23)
%l : 小时(1...12)
%M : 分钟(00...59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00...61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区 %a : 星期几 (Sun...Sat)
%A : 星期几 (Sunday...Saturday)
%b : 月份 (Jan...Dec)
%B : 月份 (January...December)
%c : 直接显示日期与时间
%d : 日 (01...31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001...366)
%m : 月份 (01...12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)

然后通过简单的bc命令就可以得到精确的秒数甚至毫秒微秒级别的时间差了


毫秒时间差:

 

 

天数时间差:

 

 

周数时间差:

 

posted @ 2021-03-10 16:30  Philbert  阅读(1408)  评论(0编辑  收藏  举报