비지박스 형식 날짜

비지박스 형식 날짜

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.

dateGNU와 달리 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

관련 정보