명령줄에서 UNIX 타임스탬프의 형식화된 날짜를 얻는 방법

명령줄에서 UNIX 타임스탬프의 형식화된 날짜를 얻는 방법

UNIX 타임스탬프가 있고 date해당 타임스탬프에 해당하는 형식화된 날짜를 가져오고 싶습니다(예: 의 출력).

지금까지 내 시도는 다음과 같습니다.

$ date +%s
1282367908
$ date -d 1282367908
date: invalid date `1282367908'
$ date -d +1282367908
date: invalid date `+1282367908'
$ date +%s -d +1282367908
date: invalid date `+1282367908'

다음과 같은 결과가 나오길 바랍니다.

$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010

답변1

Mac OS X 및 BSD의 경우:

$ date -r 1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -r 1282368345 +%Y-%m-%d
2010-08-21

GNU 핵심 도구 사용(이를 위해서는 정보 파일을 자세히 살펴봐야 합니다):

$ date -d @1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -d @1282368345 --rfc-3339=date
2010-08-21

-u(표준) 옵션을 추가하거나 TZ=UTC0환경 변수를 전달하여 UTC 날짜(TZ=UTC0 정의UTC 오프셋 0(오프셋 없이)으로 호출되는 시간대의 동작은 UTC지정되지 않습니다(대부분의 시스템에서는 UTC 오프셋 0으로도 호출되는 시스템 정의 시간대를 참조하지만).TZ=UTCUTC

답변2

인터넷 검색 후 다음 명령을 사용하여 이 작업을 수행하는 방법을 찾았습니다 date.

$ date --date "Jan 1, 1970 00:00:00 +0000 + 1282367908 seconds"
Sat Aug 21 09:18:28 MSD 2010

답변3

다음 한 줄의 Perl 코드로 이를 수행할 수 있습니다.

$ perl -e 'print scalar localtime $ARGV[0]' 1282367908
Sat Aug 21 09:18:28 2010

답변4

OSX에서는 UTC를 사용하세요.

date -r "1475737200" -u

관련 정보