我是Linux新手。
我有以下要求。
让我们说,现在的日期时间是me
我想生成一个新的日期时间戳记,该日期时间戳记应等于小时的最接近值,即2018-07-11 15:01:23
的乘数。
例如,使用下面的当前日期和时间,结果应如下所示:
8
如果我当前的日期时间戳是startdate = 2018-07-11 00:00:00 &
enddate = 2018-07-11 08:00:00.
日期应如下所示:
2018-07-12 07:01:11
我想按照上述方法自动执行日期。 谢谢。
答案 0 :(得分:0)
我认为您在注释部分所做的操作效率很低,因为它调用date命令的次数是其六倍或更少。
如果脚本在午夜之前不到一秒钟被调用,并且日期在
设定月份和日期?
可以说该脚本是在2018-04-31 23:59:59处调用的,但是分配的值可能等于2018-04-01 00:00:00。
想要的日期是2018年4月31日23:59:59或5月1日00:00:00。
脚本可以得到的是2018年4月1日00:00:00。整整一个月!
更好的方法是从日期中获取单个字符串并将其拆分为各个部分。
date=$(date +%Y-%m-%dT%H:%M:%S)
time=${date#*T}
date=${date%T*}
year=${date%%-*}
daymonth=${date#*-}
month=${daymonth%-*}
day=${daymonth#*-}
hour=${time%%:*}
minsec=${time#*-}
minute=${minsec%-*}
second=${minsec#*-}
现在,您可以像代码的其他部分一样进行计算。