C++ 運(yùn)行時(shí)庫(kù)(CRT)提供了一些函數(shù)來(lái)處理時(shí)間和日期。這些函數(shù)位于 <ctime>
頭文件中,它們可以幫助你執(zhí)行常見(jiàn)的時(shí)間和日期操作,如獲取當(dāng)前時(shí)間、格式化時(shí)間以及解析時(shí)間字符串等。
以下是一些常用的 C++ CRT 時(shí)間和日期函數(shù):
time_t
值。#include <ctime>
time_t now = time(0);
time_t
值轉(zhuǎn)換為“本地時(shí)間”的 tm
結(jié)構(gòu)。#include <ctime>
struct tm *local_time = localtime(&now);
time_t
值轉(zhuǎn)換為“格林尼治標(biāo)準(zhǔn)時(shí)間”的 tm
結(jié)構(gòu)。#include <ctime>
struct tm *gmt_time = gmtime(&now);
time_t
值轉(zhuǎn)換為字符串形式。#include <ctime>
char buffer[80];
ctime(buffer); // buffer 現(xiàn)在包含了當(dāng)前時(shí)間的字符串表示
tm
結(jié)構(gòu)為字符串。#include <ctime>
struct tm local_time = *localtime(&now);
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &local_time);
tm
結(jié)構(gòu)。#include <ctime>
const char *date_str = "2023-07-20 15:30:00";
struct tm parsed_time;
strptime(date_str, "%Y-%m-%d %H:%M:%S", &parsed_time);
tm
結(jié)構(gòu)轉(zhuǎn)換為 time_t
值。#include <ctime>
struct tm local_time = {0, 0, 0, 20, 6, 130}; // July 20, 2023, 00:00:00
time_t new_time = mktime(&local_time);
這些函數(shù)提供了對(duì)時(shí)間和日期的基本操作,但在處理復(fù)雜的日期和時(shí)間邏輯時(shí),你可能還需要使用 C++11 引入的 <chrono>
庫(kù),它提供了更強(qiáng)大和靈活的時(shí)間處理功能。