bash - 无法在 bash 中使用 ddmmyyyy 格式增加日期

标签 bash date

为什么会这样:

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 日期不支持日期格式 ddmmyyyy 类型,如 Pure numbers in date strings 所示。 ,您需要将其更改为 yyyymmdd 类型才能使其正常工作

date -d "20180501 + 1 day"

或以 UTC 为

date -ud "20180501 UTC + 1 day"

如果您的原始字符串来自变量,并且您需要解决方法以使其与上述格式兼容,请使用参数扩展来实现

rawdate="02062018"
compatDate="${rawdate:4}${rawdate:2:2}${rawdate:0:2}"

并在date命令中使用变量compatDate

date -d "${compatDate} + 1 day"

关于bash - 无法在 bash 中使用 ddmmyyyy 格式增加日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695185/

相关文章:

python - 在 DataFrame 中为一系列日期创建 id

javascript d3.js 日期字符串解析问题

javascript - 修复 Selected startDate 应该是下一个 end Date

python - 从数字中获取月份名称

linux - 为每个通配符匹配创建命令替换

linux - 比较日期与 csh

c - 将参数传递到 ./configure

bash - 如何在终端中输入 token 而不留下历史记录?

bash:如何删除最后一个符号

java - 如何在 Android 中比较用户选择的日期与起始日期和截止日期?