我将秒,分钟,小时,日,月和年作为我的应用中的单个值,并且需要从此值生成一个unix时间戳。
我只找到了如何直接使用C函数获取时间戳的解决方案。
如何使用C ++中的给定值生成unix时间戳?
答案 0 :(得分:5)
使用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的Gregorian date system。