滑稽,便携和可读的时间

时间:2012-03-04 21:28:22

标签: glib

我试图通过glib获得微秒的时间,如果可能的话,这也将在Windows上工作。

我的方法:

     char buff[256];
     GTimeVal mtime;
     g_get_current_time(&mtime);
     strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S.%%06u", mtime);
     printf("%s\n", buff);

......不按预期工作。

如何使其发挥作用?

感谢。

[编辑] 第二个例子:

GTimeVal start, finish;
g_get_current_time(&start);

//some operation

g_get_current_time(&finish);

GTimeVal el;
el.tv_sec = finish.tv_sec - start.tv_sec;
el.tv_usec = finish.tv_usec - start.tv_usec;
if (el.tv_usec < 0)
{
    el.tv_usec += 1000000;
    el.tv_sec--;
}

char st[24] = {0};
char qt[32] = {0};
if (counter)
{
    sprintf(st, "%s%d%s", "   Finded ", counter, " results");
    sprintf(qt, " %u.%06u %s", (guint)el.tv_sec, (guint)el.tv_usec, " sec");
}

1 个答案:

答案 0 :(得分:3)

您可移植性的最佳注意事项可能是删除GTimeValGDateTime以及相关函数,该g_date_time_format()已在glib中弃用。 (strftime()代替g_date_time_new_now()g_get_current_time()代替{{1}})。