정수를 가져와 날짜 형식을 만듭니다.

정수를 가져와 날짜 형식을 만듭니다.

날짜를 구해 정수로 변환할 수 있습니다.

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

관련 정보