取一个整数并创建日期格式

取一个整数并创建日期格式

我可以获取一个日期并将其转换为整数。

date_as_integer = $("2020-06-13" | sed "s/-//g") 

但是有没有办法将其转换回最新版本?

答案1

使用 bash 参数扩展进行字符串操作:

date2int() {
  printf "%s\n" "${1//-/}"
}

int2date() {
  printf "%s-%s-%s\n" "${1:0:4}" "${1:4:2}" "${1:6:2}"
}

date +%F                                # => 2020-07-24
n=$(date2int "$(date +%F)"); echo "$n"  # => 20200724
d=$(int2date "$n"); echo "$d"           # => 2020-07-24

这个技术绝对是不是适合日期算术。

# subtract 2 days from Jan 1
date="2000-01-01"
n=$(date2int "$date")
int2date "$((n - 2))"          # => 2000-00-99

你不妨坚持 GNU 日期

date="2000-01-01"
date -d "$date - 2 day" "+%F"  # => 1999-12-30

相关内容