#include <ctime>
time_t varName = time(time_t *time);
//返回当前时间戳
time(&a);
//传入时间戳地址,对 a 进行赋值
time_t a = time(NULL); //合并写法,传入空地址,并赋值给 a
char *varName = ctime(time_t * timestamp);
//返回可读性的时间
char *nowTime = ctime(&a);
//将 a 转换为可读性时间,C 使用 char
string nowTime = ctime(&a);
//将 a 转换为可读性时间,C++ 使用 string
clock_t varName = clock();
//返回程序执行过程中两个时间的时间差
clock_t before = clock();
//记录某一开始时间
.........
//程序执行过程
clock_t diff = clock() - before;
//diff 即为耗时时间,时间单位取决于计算机
float diff = clock() - before;
float sec = diff / CLOCKS_PER_SEC;
//通过宏常量 CLOCKS_PER_SEC 将耗时转换为秒,转换前需保证 diff 为浮点数
double varName = difftime(time_t end, time_t start);
//返回两个时间戳之间的秒数
double difftime(b, a); //不需要传入地址,因为不用修改变量
struct tm *varName = gmtime(time_t *timestamp);
//将时间戳转换为表示 GMT 时区时间的 tm 结构体指针
gmtime(&a);
struct tm *varName = localtime(time_t *timestamp);
//将时间戳转换为表示计算机本地时区时间的 tm 结构体指针
localtime(&a);
char *varName = asctime(const struct tm * time);
//将 tm 结构体中的时间转换为 C 风格字符串表示,固定格式
asctime(a);
//WWW MMM DD HH:mm:ss YYYY(例如:"Sun Dec 17 21:34:26 2023")
int varName = strftime(char *destination, size_t size, const char *format, const struct tm *datetime);
//将 tm 结构体中的时间转换为 C 风格字符串表示,可自定义格式
struct tm *date; //声明结构体
date = localtime(&a); //转换时间戳为结构体
char b[30]; //存放格式化后的时间字符串
strftime(b, 30, "%I:%M:%S %p", date);
cout << "时间:" << b;
/*---------- 格式化字符串 ----------*/
https://www.w3school.com.cn/cpp/ref_ctime_strftime.asp
%a 星期简写 Fri
%A 星期全称 Friday
%b 月份简写 Dec
%B 月份全称 December
%d 月份中的天数,带前导零 09
%D 日期表示形式,等效于 %m/%d/%y 12/17/23
%e 月份中的天数,带前导空格 9
%F 日期表示形式,等效于 %Y-%m-%d 2023-12-17
%T 24 小时制时间格式,等效于 %H:%M:%S 14:30:01
%G 星期简写 Fri
......
time_t varName = mktime(struct tm *time);
//将 tm 结构体转换为时间戳
struct tm date; //声明结构体
date.tm_year = 2026 - 1900;
date.tm_mon = 1 - 1;
date.tm_mday = 12;
date.tm_hour = 12;
date.tm_min = 12;
date.tm_sec = 12;
date.tm_isdst = -1;
time_t now = mktime(&date);
cout << "自定义时间的时间戳:" << now;