Bash를 사용하여 타임스탬프를 Unix epoch 시간으로 변환하는 방법

Bash를 사용하여 타임스탬프를 Unix epoch 시간으로 변환하는 방법

다음과 비슷한 타임스탬프가 있습니다.2022-11-09T14:41:15.555641007Z

다음과 같이 Unix epoch 시간(초)으로 변환하고 싶습니다.1668005090

다음을 사용하여 어떻게 이를 달성할 수 있습니까??

답변1

다음과 같이(GNU 또는 ast-open 구현을 가정 date):

$ date -d '2022-11-09T14:41:15.555641007Z' +%s
1668004875

답변2

macOS에서는 입력이 UTC로 알려져 있다고 가정합니다.

% t='2022-11-09T14:41:15.555641007Z';
% date -j -f "%Y-%m-%dT%H:%M:%S%z" "${t%.*}+0000" +%s                          
1668004875

예상대로 ${t%.*}+0000나노초와 표시를 제거 Z하고 시간대 표시를 추가합니다 .+0000%z

UTC가 아닌 경우 이전 형식으로 변환한 후 사용해야 합니다.2022-11-09T14:41:15+hhmmdate -j -f "%Y-%m-%dT%H:%M:%S%z" "$t" +%s

옵션은 다음과 같습니다FreeBSD 버전date비슷해 보여서 여기에도 적용될 수 있습니다.

관련 정보