date 명령을 사용하여 UNIX 시간을 문자열 시간으로 변환

date 명령을 사용하여 UNIX 시간을 문자열 시간으로 변환

date 명령에 대한 매뉴얼 페이지를 읽었지만 UNIX 시간을 문자열 시간으로 변환하는 옵션이 없습니다. 나는 다음과 같은 내용의 웹사이트를 발견했습니다.

date -d @1343715322

@매뉴얼 및 정보 페이지와 같은 옵션이 없습니다 . 누군가 이것을 설명할 수 있나요?

답변1

일반적으로 매뉴얼 페이지에서는 이와 같은 세부 정보를 찾을 수 없습니다.

확인하면 info date"날짜 입력 형식" 섹션에서 찾을 수 있습니다.

답변2

GNU 날짜 매뉴얼에는 다음이 있습니다:http://www.gnu.org/software/coreutils/manual/coreutils.html#Seconds-since-the-Epoch. coreutils 정보 페이지에서도 동일한 설명을 볼 수 있습니다.

숫자 앞에 "@"이 있으면 내부 타임스탬프(초)를 나타냅니다. 숫자에는 내부 소수점("." 또는 ",")이 포함될 수 있습니다. 내부 표현에서 지원되지 않는 초과 정밀도는 음의 무한대로 잘립니다. 이 유형의 숫자는 완전한 타임스탬프를 지정하므로 다른 날짜 항목과 결합할 수 없습니다.

내부적으로 컴퓨터 시간은 에포크(잘 정의된 시점) 이후의 초 수로 표현됩니다. GNU 및 POSIX 시스템에서 epoch는 1970-01-01 00:00:00 utc이므로 "@0"은 이 시간을 나타내고 "@1"은 1970-01-01 00:00:01 utc를 나타냅니다. . GNU 및 대부분의 다른 POSIX 호환 시스템은 음수 계산을 사용하는 POSIX 확장과 같은 시간을 지원하므로 "@-1"은 1969-12-31 23:59:59 UTC를 나타냅니다.

기존 Unix 시스템은 32비트 2의 보수 정수를 사용하여 초를 계산합니다. 이는 1901-12-13 20:45:52부터 2038-01-19 03:14:07 UTC까지의 시간을 나타낼 수 있습니다. 보다 현대적인 시스템은 나노초 하위 카운트가 포함된 64비트 초 카운트를 사용하며 1나노초 분해능으로 알려진 우주 수명의 모든 시간을 나타낼 수 있습니다.

대부분의 호스트에서 이러한 개수는 윤초의 존재를 무시합니다. 예를 들어, 대부분의 호스트에서 "@915148799"는 1998-12-31 23:59:59 UTC를 나타내고 "@915148800"은 1999-01-01 00:00:00 UTC를 나타내며 시간 사이의 점프를 나타낼 수 없습니다. 1998-12-31 23:59:60 UTC

관련 정보