在C++中,可以使用<chrono>
库和<ctime>
库将Unix时间戳转换为本地时间,以及将本地时间转换为Unix时间戳。以下是两种转换方法的示例代码:
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// Unix时间戳,单位为秒
long long unix_timestamp = 1633016823;
// 使用std::chrono库将Unix时间戳转换为time_point对象
std::chrono::system_clock::time_point time_point = std::chrono::system_clock::from_time_t(unix_timestamp);
// 将time_point对象转换为本地时间(time_t类型)
std::time_t local_time = std::chrono::system_clock::to_time_t(time_point);
// 使用localtime函数将本地时间转换为字符串格式
char buffer[80];
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", std::localtime(&local_time));
std::cout << "本地时间: " << buffer << std::endl;
return 0;
}
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// 获取当前本地时间
std::time_t local_time = std::time(nullptr);
// 使用localtime函数将本地时间转换为time_t对象
std::tm* local_tm = std::localtime(&local_time);
// 使用std::chrono库将本地时间转换为time_point对象
std::chrono::system_clock::time_point time_point = std::chrono::system_clock::from_time_t(local_time);
// 将time_point对象转换为Unix时间戳(单位为秒)
long long unix_timestamp = std::chrono::duration_cast<std::chrono::seconds>(time_point.time_since_epoch()).count();
std::cout << "Unix时间戳: " << unix_timestamp << std::endl;
return 0;
}