C++中的ctime庫提供了一系列的時間處理函數,可以用於獲取當前時間、獲取時間戳、格式化輸出時間等操作。本文將從以下幾個方面進行詳細的闡述。
一、獲取當前時間
獲取當前時間可以使用庫函數time(),該函數返回自1970年1月1日以來經過的秒數。代碼示例:
#include #include int main() { time_t now = time(0); std::cout << "現在的時間是:" << ctime(&now) << std::endl; }
在上述代碼中,ctime()函數將time_t類型的時間轉換為字元串,並輸出到控制台。結果示例:現在的時間是:Fri Jul 30 11:52:26 2021
二、獲取時間戳
時間戳是指從某個固定時間點開始計時的秒數,通常以1970年1月1日00:00:00 UTC為起點。獲取時間戳可以使用庫函數time(),將其返回值轉換為long類型即可。代碼示例:
#include #include int main() { time_t now = time(0); long timestamp = static_cast(now); std::cout << "時間戳是:" << timestamp << std::endl; }
在上述代碼中,static_cast(now)將time_t類型的時間轉換為long類型,並輸出到控制台。結果示例:時間戳是:1627624360
三、格式化輸出時間
格式化輸出時間可以使用庫函數strftime(),該函數將time_t類型的時間按照指定的格式進行格式化輸出。代碼示例:
#include #include int main() { time_t now = time(0); char buffer[80]; strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&now)); std::cout << "格式化輸出時間是:" << buffer << std::endl; }
在上述代碼中,strftime()函數將time_t類型的時間進行格式化輸出,並將結果存儲在buffer數組中。結果示例:格式化輸出時間是:2021-07-30 11:52:26
四、計算時間差
計算時間差可以使用difftime()函數,該函數用於計算兩個time_t類型時間的差值(以秒為單位)。代碼示例:
#include #include int main() { time_t start = time(0); // 程序運行一段時間 time_t end = time(0); double seconds = difftime(end, start); std::cout << "程序運行了 " << seconds << " 秒" << std::endl; }
在上述代碼中,difftime()函數用於計算兩個時間的差值,並將結果存儲在double類型的seconds中。結果示例:程序運行了 10 秒
五、根據時間字元串獲取時間
根據時間字元串獲取time_t類型的時間可以使用庫函數strptime(),該函數將字元串轉換為struct tm類型,再進一步轉換為time_t類型。代碼示例:
#include #include int main() { struct tm tm = {}; strptime("2021-07-30 11:52:26", "%Y-%m-%d %H:%M:%S", &tm); time_t timestamp = mktime(&tm); std::cout << "轉換後的時間是:" << ctime(×tamp) << std::endl; }
在上述代碼中,strptime()函數將字元串轉換為struct tm類型,mktime()函數將struct tm類型轉換為time_t類型,並輸出到控制台。結果示例:轉換後的時間是:Fri Jul 30 11:52:26 2021
以上就是C++中ctime庫的時間處理函數的相關介紹和用法示例。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154402.html