bash - 使用 bash 在 YYYYMMDDHHMMSS 中增加日期的小时/分钟/秒

标签 bash shell

假设今天的日期格式为 YYYYMMDDHHMMSS,例如 20160720152654。我想添加小时、分钟或秒。

添加 1 小时应将日期更改为 20160720162654 添加 1 分钟应将日期更改为 20160720152754 添加 1 秒应将日期更改为 20160720152655

这似乎给了我不正确的结果

d=日期+%Y%m%d%H%M%S pd=$(($d + ($d % (15 * 60)))) echo $d echo $pd

输出 20160720155141 20160720155482

最佳答案

您可以操纵输入以将其传递给 date -d:

s='20160720162654'

# add 1 minute
date -d "${s:0:8} ${s:8:2}:${s:10:2}:${s:12:2} +1 min" '+%Y%m%d%H%M%S'    
20160720112754

# add 1 sec
date -d "${s:0:8} ${s:8:2}:${s:10:2}:${s:12:2} +1 sec" '+%Y%m%d%H%M%S'    
20160720112655

# add 1 hour
date -d "${s:0:8} ${s:8:2}:${s:10:2}:${s:12:2} +1 hour" '+%Y%m%d%H%M%S'    
20160720122654

关于bash - 使用 bash 在 YYYYMMDDHHMMSS 中增加日期的小时/分钟/秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38491986/

相关文章:

git - 'git add --patch' 来包含新文件?

linux - shell 脚本启动和停止函数中意外的代码执行顺序

bash - 使用纯 bash 创建 URL 友好的 slug?

python - 有没有办法可以用 bash 而不是 cmd 进行编译?

linux - Bash 确定最高变量和最低变量之间的差异

linux - 如何使用 shell 命令的输出设置期望变量

linux - Ubuntu bash awk 奇怪的行为

bash - 如何将输出重定向到 shell 中的变量?

php - 使用PHP执行shell,实时获取并显示结果

linux - 最后一个ip地址加100