在c++標準庫中沒有單獨的日期類型。它繼承了c語言中用於日期和時間操作的結構和函數。我們需要包含ctime頭文件來訪問日期和時間相關的函數和結構。有四種與時間相關的類型:clock_t、time_t、size_t和tm。clock_t、size_t和time_t類型能夠將係統時間和日期表示為某種整數。
在c++ 11中,你可以使用std::chrono::system_clock::now()來獲取當前的係統日期和時間。讓我們看一個例子。將此代碼複製到名為computeTime.cpp的文件中。這段代碼發現計算前100個自然數的平方實際需要多少時間。
#include #include #include #include #include
Int main() {Int i;int平方;結構tm tm;自動啟動= std::chrono::system_clock::now();(i = 1;< = 100;I ++) sq = I * I;自動結束= std::chrono::system_clock::now();Std::chrono::duration elapsed_seconds = end-start;Std::time_t end_time = Std::chrono::system_clock::to_time_t(end); localtime_r(&end_time, &tm); char CharLocalTimeofUTCTime[30]; strftime(CharLocalTimeofUTCTime, 30, "%Y-%m-%dT%H:%M:%SZ", &tm); //std::string strLocalTimeofUTCTime(CharLocalTimeofUTCTime); std::cout << "finished computation at " << std::ctime(&end_time) << "elapsed time: " << elapsed_seconds.count() << "s\n"; }
現在編譯並執行這段代碼。
(base) 0:28:05:~ % ./a。在2021年9月25日星期六00:28:06結束計算,運行時間:1e-06秒
tm結構在C和c++中使用日期和時間是非常重要的。大多數時候相關的函數都使用tm結構。在前麵的代碼片段中,我們使用tm結構將時間從UTC時區轉換為IST時區。