내 코드는 시작 시간을 사용하고 해당 시작 시간에서 다른 날짜/시간 변수를 정의합니다. 이와 같이:
shour=$(date -d "yesterday 3PM" -u)
dd=$(date "+%d" -d "$shour" -u)
sdate=$(date "+%Y%m%d" -d "$shour" -u)
이것은 반환됩니다;
date: invalid date 'Thu 16 Jan 15:00:00 UTC 2020'
date: invalid date 'Thu 16 Jan 15:00:00 UTC 2020'
이것 때문에 내 머리카락을 잡아당겨!
답변1
date
기본 출력을 읽을 수 없습니다.Thu 16 Jan 15:00:00 UTC 2020
date
다시 처리하려는 출력은 date
형식 문자열을 사용하여 출력 형식을 지정해야 합니다 '+%F %T'
.
답변2
올해는 순위가 문제가 될 것 같아요. 실패하더라도:
host:~ # date -d 'Thu 16 Jan 15:00:00 UTC 2020'
date: invalid date ‘Thu 16 Jan 15:00:00 UTC 2020
이것은 내 가상 머신에서 작동합니다.
host:~ # date -d 'Thu 16 Jan 2020 15:00:00 UTC'
Thu Jan 16 16:00:00 CET 2020
첫 번째 명령문에 날짜 형식을 추가했는데 이것이 작동하는 것 같습니다.
shour=$(date "+%Y%m%d" -d "yesterday 3PM" -u)
ddate="$(date -d "${shour}" -u)"
sdate=$(date "+%Y%m%d" -d "$shour" -u)
답변3
시도해 볼 date
수 있는 옵션 -R
:
-R, --rfc-email output date and time in RFC 5322 format. Example: Mon, 14 Aug 2006 02:34:56 -0600
date -d "yesterday 3PM" -R
Thu, 16 Jan 2020 15:00:00 +0100
date -d "$(date -d "yesterday 3PM" -R)" +%s
1579183200