이전 날짜를 사용하여 날짜를 구문 분석하면 오류가 발생합니다.

이전 날짜를 사용하여 날짜를 구문 분석하면 오류가 발생합니다.

date 명령을 사용하는 데 문제가 있습니다. 다음을 실행하면 오류가 발생합니다.

danilo@desktop:~$ x=$(date -d "+60 seconds"); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:07:05 CEST 2017’

내가 테스트한 다른 컴퓨터에서도 작동하기 때문에 이것은 이상합니다. 아니면 이것도:

danilo@desktop:~$ x=$(date); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:06:43 CEST 2017’

오류가 발생합니다.

이 오류의 이유는 무엇입니까? 시간대 설정인가요? 어떻게 작동하게 할 수 있나요?

답변1

현재로서는 해당 로케일의 기본 형식이 입력으로 지원되지 않습니다. 해결책은 표준 형식을 사용하는 것입니다. 예를 들어:

x=$(date -d "+60 seconds" +%s); dt=$(date -d "@$x")

+%sdate표준 Unix 형식(epoch 이후 초)을 반환하도록 지시합니다 .

로그인 @지침은 이를 에포크 이후의 초 수로 date -d "@$x"해석합니다 .date$x

관련 정보