天天看點

C++擷取目前系統時間 UTC 時間 轉換

#include<ctime>  //c++ 标準庫沒有提供日期類型,C++ 繼承c的函數與操作
有四個與時間相關的類型:clock_t、time_t、size_t 和 tm。類型 clock_t、size_t 和 time_t 能夠把系統時間和日期表示為某種整數。

結構類型 tm 把日期和時間以 C 結構的形式儲存,tm 結構的定義如下:
struct tm {
  int tm_sec;   // 秒,正常範圍從 0 到 59,但允許至 61
  int tm_min;   // 分,範圍從 0 到 59
  int tm_hour;  // 小時,範圍從 0 到 23
  int tm_mday;  // 一月中的第幾天,範圍從 1 到 31
  int tm_mon;   // 月,範圍從 0 到 11
  int tm_year;  // 自 1900 年起的年數
  int tm_wday;  // 一周中的第幾天,範圍從 0 到 6,從星期日算起
  int tm_yday;  // 一年中的第幾天,範圍從 0 到 365,從 1 月 1 日算起
  int tm_isdst; // 夏令時
}
           

示例

#include<iostream>
#include<ctime>
using namespace std;

int main(){
	time_t  now =time(0);
	char  * data = ctime(&now)
	
	cout << now  <<endl;  //輸出一個時間戳    1970 年 1 月 1 日以來經過的秒數。如果系統沒有時間,則傳回 .1。
	cout << data <<endl;  //字元串時間  
	
	//轉換UTC時間
	//  tm *gmtime(const time_t *time);  該函數傳回一個指向 time 的指針,time 為 tm 結構,用協調世界時(UTC)也被稱為格林尼治标準時間(GMT)表示。
	tm  * gm =gmtime(&now);
	// char * asctime ( const struct tm * time );  該函數傳回一個指向字元串的指針,字元串包含了 time 所指向結構中存儲的資訊,傳回形式為:day month date hours:minutes:seconds year\n\0。
	data = asctime(gm);
	cout << data <<endl;   //UTC 時間  
	return 0;
}