Linux

取整數並創建日期格式

  • July 24, 2020

我可以取一個日期並將其轉換為整數。

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

但是,有沒有辦法將其轉換回日期?

使用 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

引用自:https://unix.stackexchange.com/questions/600162