2014-02-20 50 views
1

如何在沒有Boost的情況下做到這一點(以毫秒爲單位獲得本地時間)? 我有這樣的事情:從C中的本地時間(無Boost!)中取毫秒數

time_of_day = time(NULL); 

time_str_tm = localtime(&time_of_day); 

printf("\n%02i:%02i:%02i\n", time_str_tm->tm_hour, time_str_tm->tm_min, time_str_tm->tm_sec); 

tm結構,最後只有數秒

有什麼建議?

回答

1

你需要gettimeofday(2)

struct timeval time_now; 
gettimeofday(&time_now, NULL); 
time_str_tm = gmtime(&time_now.tv_sec); 

printf("\n%02i:%02i:%02i:%06i\n" 
    , time_str_tm->tm_hour 
    , time_str_tm->tm_min 
    , time_str_tm->tm_sec 
    , time_now.tv_usec); 
+0

我'gettimeofday'第一,但我應該避免它,我的導師不能老是向我解釋一些原因.. 有沒有辦法避免呢?用'localtime'做點什麼? – Ksenia

+0

@Ksenia我沒有意識到的標準方式。 'gettimeofday'在4.3BSD和POSIX.1-2001中都是標準化的,所以我很懷疑你的導師爲什麼不希望你使用它。 –

+0

順便說一下,'tv_usec'是毫秒級的毫秒級。我應該將'tv_usec'設置爲百萬級嗎? – Ksenia