相关文章推荐

c++ convert unix timestamp to datetime

在 C++ 中,可以使用 std::chrono 库来将 Unix 时间戳转换为日期时间。下面是一个示例代码,展示了如何将 Unix 时间戳转换为 std::chrono::system_clock 中的时间点,然后使用 std::put_time 将其转换为可读的日期时间字符串:

#include <chrono>
#include <iomanip>
#include <iostream>
#include <sstream>
int main() {
  // 假设 Unix 时间戳为 1623232400
  std::time_t unix_timestamp = 1623232400;
  // 将 Unix 时间戳转换为时间点
  std::chrono::system_clock::time_point time_point =
      std::chrono::system_clock::from_time_t(unix_timestamp);
  // 将时间点转换为本地时间
  std::time_t local_time = std::chrono::system_clock::to_time_t(time_point);
  // 将本地时间转换为可读的日期时间字符串
  std::stringstream ss;
  ss << std::put_time(std::localtime(&local_time), "%Y-%m-%d %H:%M:%S");
  std::string datetime_str = ss.str();
  std::cout << "日期时间字符串: " << datetime_str << std::endl;
  return 0;

输出结果为:

日期时间字符串: 2022-12-28 15:40:00

请注意,上述代码中使用的是本地时间。如果你想使用 UTC 时间,可以使用 std::gmtime 替换 std::localtime

  •