How do I get current Unix time in milliseconds using bash? | 배시에서 유닉스 타임을 밀리세컨드로 확인하기

Q.

현재 유닉스 타임을 밀리세컨드로 확인하려면 어떻게 하나요? (예. 1970년 1월 1일로부터 경과된 유닉스 시간을 밀리세컨드 단위로)

 

A.

이거:

date +%s

유닉스 타임을 초단위로 알려줘요.

이거:

date +%s%N

초단위에 나노세컨드를 함께 알려줘요.

그래서:

date +%s%N | cut -b1-13

이렇게 하면 유닉스 타임을 밀리세컨드로 확인할 수 있어요 – 초단위 더하기 나노세컨드의 왼쪽 숫자 세 개.

 

A2.

간단하게 %3N을 쓰면 나노세컨드의 가장 큰 3개 숫자만 분리할 수 있어요 (밀리세컨드가 되지요):

date +%s%3N
1397392146866

제 kubuntu 12.04에서 잘 돼요.

하지만 %N이 시스템에 따라 구현되어 있지 않을 수도 있다는 점을 참고하세요. 예를 들어, 임베디드 시스템(non-HF arm cross toolchain으로 컴파일한 buildroot rootfs)에는 %N이 없었어요:

$ date +%s%3N
1397392146%3N

(그리고 제 루팅 안 한 안드로이드 태블릿도 %N이 없어요).

 

A3.

date +%N은 OS X에서 안돼요. 하지만 아래 중 하나를 쓸 수 있어요

  • ruby: ruby -e ‘puts Time.now.to_f’
  • python: python -c ‘import time; print time.time()’
  • node.js: node -e ‘console.log(Date.now())’
  • PHP: php -r ‘echo microtime(TRUE);’
  • the internets: wget -qO- http://www.timeapi.org/utc/now?\\s.\\N
  • 초단위로 버림 한 밀리세컨드를 확인하려면 date +%s000

 

#.

첫 번째 답변은 범용성이 좋고, 두 번째 답변은 간단해서 좋네요. 세 번째 답변은 매우 친절하네요. wget은 상상도 못했는데 재밌네요. 상황에 맞게 쓰면 되겠습니다. 답변 달려고 임베디드에서도 해보고 태블릿에서도 해보는 두 번째 답변자가 멋지네요.

 

원문.

https://serverfault.com/questions/151109/how-do-i-get-current-unix-time-in-milliseconds-using-bash