如何在C++中生成unix时间戳

How to generate unix timestamp in C++?

本文关键字:unix 时间戳 C++      更新时间:2023-10-16

我从应用程序中获得秒、分钟、小时、天、月和年作为单个值,并且需要从这些值生成unix时间戳。

我只找到了如何使用C函数直接获取时间戳的解决方案。

如何在C++中生成具有给定值的unix时间戳?

使用std::mktime,这是C++标准库中也可用的C库函数

#include <ctime>
std::tm tm;
tm.tm_sec = seconds;
tm.tm_min = minutes;
tm.tm_hour = hours;
tm.tm_mday = day;
tm.tm_mon = month - 1;    // Assuming your month represents Jan with 1
tm.tm_year = year - 1900; // Assuming your year is the AD year number
std::time_t time = std::mktime(&tm);

或者,为了获得更多C++风格,可以使用第三方库,如Boost.DateTime的格里高利日期系统。