본문 바로가기

OS/Linux

Linux - Date 명령어로 타임스탬프 변환하기

728x90

리눅스(Linux)에서 date 명령어는 시스템의 날짜와 시간을 출력하거나 설정하는 데 사용됩니다. 날짜와 시간을 다루는 다양한 형식을 지원하며, 이를 통해 타임스탬프를 읽기 쉽거나 특정 형식으로 변환할 수 있습니다. 또한, 타임스탬프 값을 받아 사람이 이해할 수 있는 날짜로 변환하는 기능도 제공합니다.

1. date 명령어 기본 사용법

리눅스의 date 명령어는 기본적으로 현재 시스템의 날짜와 시간을 출력합니다.

# date
2024. 10. 02. (수) 09:17:42 KST

기본 출력 형식은 시스템의 로케일 설정에 따라 다를 수 있지만, 일반적으로 "년-월-일 시:분:초" 형식으로 나타납니다.

특정 형식으로 날짜와 시간을 출력하고 싶다면 + 옵션을 사용하여 원하는 포맷을 지정할 수 있습니다.

# date +"%Y-%m-%d %H:%M:%S"
2024-10-02 09:18:24

형식 지정자 예시

  • %Y : 연도 (예: 2024)
  • %m : 월 (예: 10)
  • %d : 일 (예: 02)
  • %H : 시간 (24시간 형식, 예: 09)
  • %M : 분 (예: 18)
  • %S : 초 (예: 24)

2. 타임스탬프(timestamp) 변환

리눅스에서 타임스탬프를 처리할 때, 보통 초 단위로 된 Unix 타임스탬프를 다룹니다.

이 타임스탬프는 1970년 1월 1일 00:00:00 UTC부터 경과된 초를 나타냅니다.

타임스탬프를 날짜로 변환하기

Unix 타임스탬프를 날짜로 변환하려면 -d 또는 --date 옵션을 사용합니다. 값 앞에 @ 기호를 붙여 해당 시점을 변환합니다.

# date -d @1727828448
2024. 10. 02. (수) 09:20:48 KST

반대로 현재 시간을 타임스탬프 형식으로 출력하려면 아래와 같이 입력합니다.

# date +%s
1727828448

밀리초(ms)가 포함된 타임스탬프 변환

일반적으로 초 단위로 처리되지만, 간혹 밀리초(ms) 단위의 타임스탬프를 접할 때가 있습니다. 

타임스탬프 1727828448422 이 있을 때, 이 값에서 밀리초를 제거하고 1727828448로 변환하여 처리해야 합니다.

# date -d @1727828448422
56722. 09. 15. (금) 19:47:02 KST  // 날짜가 이상하므로 확인 필요
# date -d @1727828448
2024. 10. 02. (수) 09:20:48 KST

밀리초가 포함된 타임스탬프는 마지막 3자리 숫자를 제거하여 초 단위로 변환한 후 date 명령어로 변환합니다.

728x90
반응형