一、時間戳定義
時間戳是指從某個特定時間點起到當前時間所經過的秒數。在C++中,常用的時間戳是Unix時間戳,它是指從1970年1月1日0時0分0秒(也稱為「Unix紀元」)起到當前時間所經過的秒數。
當然,在C++中也可以使用其他自定義時間戳,只要定義好起點和計算方法即可。
二、時間戳獲取
在C++中,可以通過time函數獲取當前時間戳,具體代碼如下:
#include <ctime> time_t timestamp = time(nullptr); //獲取當前時間戳
這段代碼會獲取當前UTC時間的時間戳,並將其存儲到timestamp變數中。如果需要以本地時間為準,則需要使用localtime函數進行轉換:
#include <ctime> time_t timestamp_utc = time(nullptr); //獲取當前UTC時間的時間戳 tm* tm_now = localtime(×tamp_utc); //轉換為本地時間 time_t timestamp_local = mktime(tm_now); //獲取本地時間的時間戳
這段代碼獲取當前UTC時間的時間戳,然後將其轉換為本地時間,並獲取本地時間的時間戳。需要注意的是,localtime函數返回的是一個指向tm結構的指針,因此需要使用mktime函數將其轉換為時間戳。
三、時間戳轉換
1. 時間戳轉字元串
在C++中,可以使用strftime函數將時間戳轉換為指定格式的字元串。下面是一個示例代碼:
#include <iostream> #include <ctime> int main() { time_t timestamp = time(nullptr); //獲取當前時間戳 char buf[64]; //存儲轉換後的字元串 strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(×tamp)); //格式化輸出 std::cout << buf << std::endl; //輸出轉換後的字元串 return 0; }
這段代碼將當前時間戳轉換為”%Y-%m-%d %H:%M:%S”格式的字元串,並將其輸出到控制台。
2. 字元串轉時間戳
如果需要將字元串轉換為時間戳,可以使用strptime函數。下面是一個示例代碼:
#include <iostream> #include <ctime> int main() { std::string str_time = "2022-01-01 00:00:00"; //待轉換的時間字元串 struct tm tm_time = {0}; //存儲轉換後的tm結構 strptime(str_time.c_str(), "%Y-%m-%d %H:%M:%S", &tm_time); //轉換為tm結構 time_t timestamp = mktime(&tm_time); //轉換為時間戳 std::cout << timestamp << std::endl; //輸出轉換後的時間戳 return 0; }
這段代碼將字元串”2022-01-01 00:00:00″轉換為時間戳,並將其輸出到控制台。
四、時間戳計算
1. 時間戳加減
在C++中,可以通過加減time_t類型的數據來進行時間戳的加減計算。下面是一個示例代碼:
#include <iostream> #include <ctime> int main() { time_t timestamp = time(nullptr); //獲取當前時間戳 time_t timestamp_after_10min = timestamp + 600; //加上10分鐘 std::cout << "當前時間:" << ctime(×tamp); std::cout << "10分鐘後的時間:" << ctime(×tamp_after_10min); return 0; }
這段代碼獲取當前時間戳,並加上10分鐘的時間間隔,然後輸出當前時間和10分鐘後的時間。
2. 計算時間差
如果需要計算兩個時間戳之間的時間差,可以使用difftime函數。下面是一個示例代碼:
#include <iostream> #include <ctime> int main() { time_t timestamp_before = time(nullptr); //獲取當前時間戳 //模擬一段時間間隔 for (int i = 0; i < 100000000; ++i) {} time_t timestamp_after = time(nullptr); //獲取當前時間戳 double time_diff = difftime(timestamp_after, timestamp_before); //計算時間差 std::cout << "時間間隔:" << time_diff << "秒" << std::endl; return 0; }
這段代碼模擬了一段時間間隔,並計算了兩個時間戳之間的時間差,並將其輸出到控制台。
五、小結
本文詳細介紹了在C++中使用時間戳的相關操作,包括時間戳的定義、獲取、轉換和計算。希望讀者通過本文的介紹,能夠更加深入地理解C++中時間戳的使用方法。
原創文章,作者:UCTHU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/362642.html