你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

处理Shell 脚本时候的时间加减和时间差的计算

[复制链接]
gaosmile 发布时间:2020-4-15 11:24
最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题。时间的加减,以及时间差的计算。
9 P% _- x- i. u. C) `+ P3 Z1 V8 i
1。时间加减

% |8 i* |2 ]# Q) T0 S  q
这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒。
2 n( P$ H% {6 J
如:1990-01-01 01:01:01 加上 1小时 20分
" |" r1 G8 G# I2 B
处理方法:
' \( a+ Y! w" o2 |
a.将基础时间转为时间戳

! _8 P# T* Z+ b# _3 y
time1=$(date +%s -d '1990-01-01 01:01:01')
echo $time1
( o) j8 Z. S7 {/ {  h: Z
631126861 【时间戳】$ @9 j/ V. ~& T2 D4 ]8 _
b.将增加时间变成秒

' a" z( b, H% V' g
[root localhost ~]# time2=$((1*60*60+20*60))
[root localhost ~]# echo $time2

+ n* ~  {  j! k+ J
4800
4 t6 h5 W, C3 U: z/ R# B2 O
c.两个时间相加,计算出结果时间
& ^$ e5 F7 M, y6 k4 U" W' g
time1=$(($time1+$time2))
time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");
echo $time1

  x3 R: R. Y7 J, V! j" J
1990-01-01 02:21:01
( l: _7 w* ^7 n! v
2。时间差计算方法

- X6 o6 _# y0 b8 |" Q# {4 s  }
如:2010-01-01 与 2009-01-01 11:11:11 时间差

. N" G+ ~: B0 u) h# c0 n" r2 o
原理:同样转成时间戳,然后计算天,时,分,秒

  o0 A, R6 v5 p
time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));
echo time1
1 K  N3 o  l8 r" F8 h
将time1 / 60 秒,就变成分了。
" z/ m. _% g0 _3 j" D/ p2 _

# \3 H% D' C: M# c; _6 M4 D7 A
补充说明:
# Q( }& N4 q- g( ]* P* S+ p" ]8 Y+ m
shell 单括号运算符号:
: H( f" g. N7 X
a=$(date);
- E7 A6 `" h9 Q( z8 |- m5 z
等同于:a=date;

8 w) t, `2 Z6 ~  K& |; [: i9 s" d# W
双括号运算符:
- u; Z- {' g: F0 @9 p
a=$((1+2));
echo $a;
1 o2 J- y0 Y3 K# I1 t' ]
等同于:
# ^* y+ `- ?$ a/ P, x: M
a=expr 1 + 2
/ n9 Q3 B$ |) L5 i- ^, x
赞 收藏 评论1 发布时间:2020-4-15 11:24

举报

1个回答
李康1202 回答时间:2020-4-16 09:15:24
谢谢分享!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版