C++实现:给定年、月、日、时、分、秒 6个数值,转换为相对于1970年1月1日的64位毫秒值
时间: 2023-07-10 07:08:11 浏览: 83
C++时间类 实现日期和秒之间的转换
5星 · 资源好评率100%
可以使用C++标准库中的chrono和ctime头文件来实现该功能。具体做法如下:
```c++
#include <chrono>
#include <ctime>
// 将年、月、日、时、分、秒转换为tm结构体
std::tm timeinfo = {};
timeinfo.tm_year = year - 1900; // 年份需要减去1900
timeinfo.tm_mon = month - 1; // 月份从0开始计数,需要减去1
timeinfo.tm_mday = day;
timeinfo.tm_hour = hour;
timeinfo.tm_min = minute;
timeinfo.tm_sec = second;
// 将tm结构体转换为time_point类型
std::time_t tt = std::mktime(&timeinfo);
auto tp = std::chrono::system_clock::from_time_t(tt);
// 计算相对于1970年1月1日的毫秒数
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(tp.time_since_epoch()).count();
```
其中,timeinfo是一个tm结构体,表示年、月、日、时、分、秒的值。需要将其转换为time_point类型,表示从1970年1月1日起的时间点。然后,通过计算time_point相对于1970年1月1日的毫秒数,得到最终结果ms。
阅读全文