C++ ctime mktime() 函式
示例
建立時間戳並列印其日期和時間
struct tm date;
time_t timestamp;
date.tm_year = 2023 - 1900; // Number of years since 1900
date.tm_mon = 12 - 1; // Number of months since January
date.tm_mday = 17;
date.tm_hour = 12;
date.tm_min = 30;
date.tm_sec = 1;
date.tm_isdst = -1;
timestamp = mktime(&date);
cout << ctime(×tamp);
自己動手試一試 »
定義和用法
mktime() 函式從 tm 結構建立日期的 timestamp。結構表示的時間被視為計算機的本地時區。
mktime() 函式還會透過更正溢位日期並填充 tm_wday 和 tm_yday 成員來更改 tm 結構。
mktime() 函式定義在 <ctime>
標頭檔案中。
timestamp 通常表示自 Unix 紀元(1970 年 1 月 1 日)以來的秒數,但這取決於庫的實現方式,因此最好只與設計用於處理 timestamp 的函式一起使用,例如 localtime()
和 difftime()
。
mktime() 函式使用 tm 結構中的以下成員來建立 timestamp
- tm_sec - 分鐘內的秒數
- tm_min - 小時內的分鐘數
- tm_hour - 一天中的小時數(0 到 23)
- tm_mday - 一個月中的第幾天
- tm_mon - 月份(0 到 11,1 月為 0)
- tm_year - 自 1900 年以來的年數
- tm_isdst - 1 表示夏令時有效,0 表示無效,-1 表示使用計算機的時區設定
mktime() 還能處理日期中的溢位和下溢。例如,下面的程式碼會將 4 月 31 日正確解釋為 5 月 1 日。
更多示例
示例
mktime() 函式可以解釋溢位日期
struct tm date;
time_t timestamp;
date.tm_year = 2024 - 1900; // Number of years since 1900
date.tm_mon = 4 - 1; // Number of months since January
date.tm_mday = 31;
date.tm_hour = 0;
date.tm_min = 0;
date.tm_sec = 0;
date.tm_isdst = -1;
timestamp = mktime(&date);
cout << ctime(×tamp);
自己動手試一試 »
語法
mktime(struct tm * time);
引數值
引數 | 描述 |
---|---|
time | 必需。指向 tm 結構的指標。 |
技術詳情
返回 | 一個 time_t timestamp,表示結構中給出的日期和時間。 |
---|