Linux에서 완벽하게 작동하는 명령을 받았습니다.
date -d @$(git log -1 --format=%at) '+%Y-%m-%d_%H-%M-%S'
이제 busybox(v1.31.1)를 사용하여 동일한 형식을 지정하려고 시도하지만 항상 다음 오류와 함께 실패합니다.
잘못된 날짜 '1591877098'
답변1
잊어버린 것 같군요 @
. busybox 날짜가 해당 형식을 지원하지 않으면 다음과 같은 결과가 나타납니다.
invalid date '@1591877098'
아니요:
invalid date '1591877098'
busybox는 2010년 버전 1.17.0부터 date
지원되었습니다 date -d @epochtime
(도움말 메시지에 광고가 없어도 마찬가지입니다. 참조).범죄).
$(...)
하지만 주변 인용문을 잊어버렸습니다.
해야 한다:
date -d "@$(git log -1 --format=%at)" +%Y-%m-%d_%H-%M-%S
%Y-%m-%d
로 단순화할 수도 있습니다 %F
.
date
GNU와 달리 busybox는 date
입력 형식 지정을 지원합니다 -D
(2006년 1.10.0부터,범죄; 이 지원은 빌드 시 제외될 수 있지만) 출력 형식 외에도 다음을 수행할 수 있습니다.
date -D %s -d "$(git log -1 --format=%at)" +%F_%H-%M-%S
답변2
date
도움은 다음에서 온다비지박스 문서:
date [OPTIONS] [+FMT] [TIME]
Display time (using +FMT), or set time
Options:
[-s] TIME Set time to TIME
-u Work in UTC (don't convert to local time)
-R Output RFC-822 compliant date string
-I[SPEC] Output ISO-8601 compliant date string
SPEC='date' (default) for date only,
'hours', 'minutes', or 'seconds' for date and
time to the indicated precision
-r FILE Display last modification time of FILE
-d TIME Display TIME, not 'now'
-D FMT Use FMT for -d TIME conversion
Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
따라서 epoch 초는 유효한 입력 시간 형식이 아닙니다.
%ai
귀하의 요구 사항을 충족 합니까 %aI
? :
$ git help log
...
%at
author date, UNIX timestamp
%ai
author date, ISO 8601-like format
%aI
author date, strict ISO 8601 format