2013-04-23 3 views

답변

8

당신은 오늘 자정을 얻을 수 있습니다으로 :

date -d 'today 00:00:00' 

UNIX 스탬프 : 그래서 당신은 차이를 얻으려면

date -d 'today 00:00:00' "+%s" 

, 수행 %s

midnight=$(date -d 'today 00:00:00' "+%s") 
now=$(date "+%s") 
diff_mills=$((($now - $midnight) * 1000)) 

를 나타냅니다 초, 우리는 밀리 초를 얻으려면 *1000해야합니다. %N (나노초)와


:

midnight=$(date -d 'today 00:00:00' "+%s.%N") 
now=$(date "+%s.%N") 
diff_mills=$(echo "($now - $midnight) * 1000" | bc) 
+3

그리고 더 나은 정밀도를 얻으려면'+ % N'을 사용하여 나노초를 얻을 수 있습니다. – choroba

+0

물론입니다. 나노초 단위로 추가되었습니다. 10^-9이므로 끝 부분에는/10^6이 필요합니다. – fedorqui

+0

어, 아니. '% N'은 현재의 초에서 나노초입니다. 따라서 절대 시간은'% s. % N'입니다 ('% N '은 유용하게 0으로 채워집니다). – bobbogo

2

당신은 대신 명시 적으로 날짜 차이 모드 사용할 수 있습니다. 예를 들어 1 초 해상도의 경우 :

millis_since_midnight=$[1000 * ((`date "+%s"` - 28800) % 86400)] 

28800은 UTC (초 단위)의 오프셋입니다. 이 kludge는 BSD 시간을 가진 OSX와 같은 시스템에서 나에게 유용하여 --date 'today 00:00:00'을 지정하는 기능이 부족합니다.