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