在C语言中,从localtime(无Boost!)开始计算毫秒

在C语言中,从localtime(无Boost!)开始计算毫秒,c,milliseconds,localtime,C,Milliseconds,Localtime,在没有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结构最后只有几秒钟 有什么建议吗?您需要gettime

在没有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
结构最后只有几秒钟


有什么建议吗?

您需要
gettimeofday(2)


我第一次得到了一天的时间,但我应该避免,因为我的导师不能向我解释的一些原因。。有什么办法可以避免吗?用localtime`?@Ksenia做点什么,这不是我所知道的标准方式
gettimeofday
在4.3BSD和POSIX.1-2001中都是标准化的,所以我怀疑你的导师为什么不希望你使用它。顺便说一下,
tv\u usec
是微秒而不是毫秒。。我应该把电视除以百万吗?@Ksenia是的,如果你不需要额外的精度,就把它除以1000:)你比我的导师好多了:)谢谢你!你的代码按我的需要工作。
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);