c++中unix时间戳与本地时间的转换方法是什么

avatar
作者
筋斗云
阅读量:0

在C++中,可以使用<chrono>库和<ctime>库将Unix时间戳转换为本地时间,以及将本地时间转换为Unix时间戳。以下是两种转换方法的示例代码:

  1. 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; } 
  1. 本地时间转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; } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!