2012-06-19 88 views
3

是否有一種簡單的方法可以獲得適用於iOS,OSX,Linux和Windows的時間(17:30,01:20等)?跨平臺的方式來獲得一天的時間?

如果不是有Windows方式和posix方式或東西?

感謝

+0

你可以試試[這個答案](http://stackoverflow.com/questions/2494356/how-to-use-gettimeofday-or-something-equivalent-with-visual-studio-c-2008)和POSIX有'gettimeofday' – jxh

+1

如果你必須穿越一個平臺,只是爲了獲得時間,這是愚蠢的。 –

回答

8

可以檢索與time_t now = time(NULL);time(&now);

的時間,那麼你通常轉換爲本地時間struct tm *tm_now = localtime(&now);。 A struct tm包含年,月,日,星期幾,小時,分鐘和秒的字段。如果你想產生可打印的輸出,strftime直接支持。

這兩個都是C和C++標準,所以它們在大多數普通平臺上都可用。

如果你真的只關心C++,你可以使用std::put_time,這與strftime類似,但是在將輸出寫入流的典型情況下使用更簡單一些。

4

與C++ 11可以使用

#include <iostream> 
#include <iomanip> 
#include <ctime> 

int main() 
{ 
    std::time_t t = std::time(nullptr); 
    std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n' 
       << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n'; 
} 

應能提供關於(任何平臺)

UTC:星期三12月28日11時47分03秒2011 GMT

地方:Wed Dec 28 06:47:03 2011 EST

雖然std::put_time()(來自iomanip)還沒有在gcc 4.7.0中實現。

+0

它被添加了GCC 5.0 – TamaMcGlinn

相關問題