【发布时间】:2018-07-11 11:26:47
【问题描述】:
我是 linux 新手。
我有以下要求。
让我们说,现在的日期时间是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
日期应如下所示:
startdate = 2018-07-11 16:00:00 &
enddate = 2018-07-12 00:00:00.
我想按照上述自动执行日期。 谢谢。
【问题讨论】:
-
现在似乎工作正常: ftimestamp=$(date +"%Y-%m-%d %H:%M:%S") echo $ftimestamp fhour=$(date + "%H") fminute=$(date +"%M") fsecond=$(date +"%S") echo $fhour echo $fminute echo $fsecond fmodular2=$((fhour%8)) echo $fmodular2 datesec ="$(date '+%s' --date="$ftimestamp")" enddate=$(date --date="@$((datesec - (fmodular2*3600) - (fsecond*1) - (fminute) *60)))" '+%Y-%m-%d %H:%M:%S') echo $enddate startdate=$(date --date="@$((datesec - ((fmodular2+8 )*3600) - (fsecond*1) - (fminute*60)))" '+%Y-%m-%d %H:%M:%S') echo $startdate
标签: linux unix unix-timestamp