2012-03-04 36 views
2

我想通過glib獲得時間與微秒,如果可能的話,它也可以在windows上工作。glib,便攜式和可讀的時間

我的方法:

 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"); 
} 
+0

你的期望是什麼?它有什麼不同於你的期望? – ptomato 2012-03-06 14:57:15

+0

我只是試圖獲得便攜,可靠和精確的測量操作(和其他目的)所需的時間。我可以在Linux上得到它,但在Windows中(也與GTK),這似乎無法正常工作。這是真的還是我的編程不夠好? – 2012-03-09 13:36:21

+1

你需要說_what_不工作,並且_how_你知道它不工作。你的第二個代碼示例沒有顯示出比第一個代碼更多的東西 - 它們只是使用'g_get_current_time()'的兩個代碼示例。 – ptomato 2012-03-09 16:44:15

回答

3

您的便攜性最好的拍攝可能會下降GTimeVal,這是在油嘴滑舌過時,對於GDateTime和相關功能。 (g_date_time_format()代替strftime(),g_date_time_new_now()代替g_get_current_time())。

+0

如何用'g_date_time_format()'打印微秒? – tversteeg 2017-03-23 16:56:42