bash - 在 YYYY-MM-DDTHH:MM:SS.SSSZ Bash 脚本中增加分钟数
问题描述
我无法弄清楚我在哪里犯了错误。以下以指定格式添加分钟到日期的语法是否正确
startDate=2018-05-01
sDate=$(date -d "$startDate" '+%Y-%m-%dT%H:%M:%S.%3NZ' )
offset=5
midDate=${sDate}
echo 'mid Date before operation' ${midDate}
midDate=$(date -d "${midDate:0:4}-${midDate:5:2}-${midDate:8:2}T${midDate:11:2}:${midDate:14:2}:${midDate:17:2}.${midDate:20:3} + ${offset} minutes " '+%Y-%m-%dT%H:%M:%S.%3NZ' )
echo 'mid Date after operation' ${midDate}
输出
$bash -f main.sh
mid Date before operation 2018-05-01T00:00:00.000Z
mid Date after operation 2018-04-30T19:01:00.000Z
解决方案
尝试使用 Unix 时间,例如
#!/bin/sh
start_date=2018-05-01
offset_mins=5
start_unix=$(date -d "${start_date}" +%s)
end_unix=$((start_unix + 60*offset_mins))
end_date=$(date -d "@${end_unix}" '+%Y-%m-%dT%H:%M:%S.%3NZ')
printf "%s" ${end_date}
推荐阅读
- rust - __rust_begin_short_backtrace 如何在 Rust 中工作?
- javascript - 如何在redux中存储图像,图像返回一个空对象
- python - Unicode-Symbol 上的 Pathlib 崩溃 iff 程序与 PyInstaller 一起打包
- django - 创建虚拟环境
- python - 来自 deque 的扩展类超出了 RecursionError 最大递归深度
- javascript - 在本机反应中编辑Appbar放大图标
- tensorflow - 多类分类的错误 ROC 曲线
- javascript - 类型 'xx' 不可分配给类型 'any[] | 可迭代
| >(可迭代 & 任何[]) | (任何[] & 可迭代 )' - oracle - 在 Oracle 19c 数据库中,当我们删除表时,使用该表的过程、触发器和索引会发生什么情况?
- javascript - jQuery contents() 与 'iframe' 一起使用时,文本在 firefox 中消失