阅读量:0
在C++中,可以使用<chrono>
库和<ctime>
库将Unix时间戳转换为本地时间,以及将本地时间转换为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; }
- 本地时间转Unix时间戳:
#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; }