C++ 教程

C++ 教程 C++ 简介 C++ 下载安装和环境配置 C++ 快速入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学运算 C++ 布尔值 C++ 条件语句 C++ Switch 语句 C++ While 循环 C++ For 循环 C++ Break/Continue 语句 C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针 C++ 内存管理

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 作用域 C++ 递归 C++ Lambda 表达式

C++ 面向对象

C++ OOP C++ 类和对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++友元函数 C++ 继承 C++ 多态

C++ 错误

C++ 错误 C++ 调试 C++ 异常 C++ 输入验证

C++ 数据结构

C++ 数据结构和 STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++命名空间

C++ 命名空间

C++ 项目

C++ 项目

C++ 如何使用

C++ 两个数相加 C++ 随机数

C++ 关键字与函数参考

C++ 参考 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 高级教程

C++ 动态内存 C++ 预处理器 C++ 信号处理 C++ 多线程 C++ Web 编程 C++ 正则表达式

C++ 实例

C++ 实例 C++ 练习 C++ 测验 C++ 编译器

C++ 标准库参考

C++ 标准库 - 简介 C++ 标准库 - <fstream> C++ 标准库 - <iomanip> C++ 标准库 - <ios> C++ 标准库 - <iosfwd> C++ 标准库 - <iostream> C++ 标准库 - <istream> C++ 标准库 - <ostream> C++ 标准库 - <sstream> C++ 标准库 - <streambuf> C++ 标准库 - <atomic> C++ 标准库 - <complex> C++ 标准库 - <exception> C++ 标准库 - <functional> C++ 标准库 - <limits> C++ 标准库 - <locale> C++ 标准库 - <memory> C++ 标准库 - <new> C++ 标准库 - <numeric> C++ 标准库 - <regex> C++ 标准库 - <stdexcept> C++ 标准库 - <string> C++ 标准库 - <thread> C++ 标准库 - <tuple> C++ 标准库 - <typeinfo> C++ 标准库 - <utility> C++ 标准库 - <valarray>

C++ 模板库参考

C++ STL 库 - <array> C++ STL 库 - <bitset> C++ STL 库 - <deque> C++ STL 库 - <forward_list> C++ STL 库 - <list> C++ STL 库 - <map> C++ STL 库 - <queue> C++ STL 库 - <set> C++ STL 库 - <stack> C++ STL 库 - <unordered_map> C++ STL 库 - <unordered_set> C++ STL 库 - <vector> C++ STL 库 - <algorithm> C++ STL 库 - <iterator>



C++ ctime mktime() 函数

❮ ctime 函数


示例

创建时间戳并打印其日期和时间:

struct tm date;
time_t timestamp;

date.tm_year = 2023 - 1900; // 自 1900 年以来的年数
date.tm_mon = 12 - 1; // 自一月以来的月数
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(&timestamp);
亲自试一试 »

定义和用法

mktime() 函数根据 tm 结构体为日期和时间创建时间戳。该结构体表示的时间被视为计算机的本地时区时间。

mktime() 函数还会修改 tm 结构体,修正溢出的日期并填充 tm_wday 和 tm_yday 成员。

mktime() 函数定义在 <ctime> 头文件中。

时间戳通常表示相对于 Unix 纪元(1970 年 1 月 1 日)的秒数,但这取决于库的实现方式,因此最好只将其与设计用于处理时间戳的函数一起使用,例如 localtime() 和 difftime()。

mktime() 函数使用 tm 结构的以下成员来创建时间戳:

  • tm_sec - 分钟内的秒数
  • tm_min - 小时内的分钟数
  • tm_hour - 一天内的小时数(0 到 23)
  • tm_mday - 月份中的日期
  • tm_mon - 月份(0 到 11,从一月开始)
  • 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; // 自 1900 年以来的年数
date.tm_mon = 4 - 1; // 自一月以来的月数
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(&timestamp);
亲自试一试 »

语法

mktime(struct tm * time);

参数值

参数 描述
time 必需。指向 tm 结构的指针。

技术细节

返回值: 一个 time_t 时间戳,表示结构中给出的日期和时间。

❮ ctime 函数