unix时间戳与普通时间相互转换的算法
时间: 2023-11-25 22:10:27 浏览: 142
Unix时间戳是指从1970年1月1日0时0分0秒(UTC/GMT的午夜)起到现在所经过的秒数,因此它是一个整数。将Unix时间戳转换为普通时间很简单,只需使用标准库的时间函数即可。以下是C++的示例代码:
```c++
#include <iostream>
#include <ctime>
int main()
{
std::time_t now = std::time(nullptr);
std::cout << "Unix时间戳: " << now << std::endl;
std::tm *ltm = std::localtime(&now);
std::cout << "年份:" << 1900 + ltm->tm_year << std::endl;
std::cout << "月份:" << 1 + ltm->tm_mon << std::endl;
std::cout << "日期:" << ltm->tm_mday << std::endl;
std::cout << "时间:" << ltm->tm_hour << ":" << ltm->tm_min << ":" << ltm->tm_sec << std::endl;
return 0;
}
```
将普通时间转换为Unix时间戳也很简单,只需使用标准库的时间函数。以下是C++的示例代码:
```c++
#include <iostream>
#include <ctime>
int main()
{
std::tm tm_time = {};
tm_time.tm_year = 2022 - 1900; // 年份是从1900开始算的
tm_time.tm_mon = 3 - 1; // 月份是从0开始算的
tm_time.tm_mday = 25;
tm_time.tm_hour = 0;
tm_time.tm_min = 0;
tm_time.tm_sec = 0;
std::time_t time_stamp = std::mktime(&tm_time);
std::cout << "Unix时间戳: " << time_stamp << std::endl;
return 0;
}
```
阅读全文