bash - 无法在 bash 中使用 ddmmyyyy 格式增加日期
问题描述
为什么会这样:
date +%d%m%Y -d "01052018 + 1 day"
错误/
date: invalid date `02062018 + 1 day'
在 CEST 的 CentOS 7.3 上?我尝试了一些变化
date +%d%m%Y -d "$date 12:00 + 1 day"
date +%d%m%Y -ud "$date UTC + 1 day"
无济于事。我错过了什么?
解决方案
GNU date 不支持ddmmyyyy类型的日期格式,正如您从日期字符串中的纯数字中看到的那样,您需要将其更改为yyyymmdd类型以使其工作
date -d "20180501 + 1 day"
或使用 UTC 作为
date -ud "20180501 UTC + 1 day"
如果您的原始字符串来自变量,并且您需要解决方法以使其与上述格式兼容,请使用参数扩展来完成
rawdate="02062018"
compatDate="${rawdate:4}${rawdate:2:2}${rawdate:0:2}"
compatDate
并在date
命令中使用变量
date -d "${compatDate} + 1 day"
推荐阅读
- r - 调用 rCBA::fpgrowth 时出错:方法 fpgrowth 带有签名 (DDI)[[Ljava/lang/String; 未找到
- spring - 如何使用特定的 docker 镜像启动测试容器?
- javascript - 从 DOM 中删除 HTML
- javascript - 阻止来自 iframe/embed 的弹出窗口
- html - 在引导网格上,行的子代与 col 不同的问题是什么?
- python - 如何将响应传递给我的解析函数?
- flutter - 如何正确组织 dart 包上的多个示例
- eclipse - 在没有 Maven 或 Gradle 的情况下运行 jacoco 报告
- postgresql - 在 postgresql 12 中不使用子查询构建 jsonb 对象
- javascript - 如何通过嵌套对象值对具有唯一键的对象数组进行排序