温馨提示×

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

c++
小樊
154
2024-09-24 21:32:03
栏目: 编程语言
C++开发者专用服务器限时活动,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;
}

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:c++中unix时间戳与GMT/UTC时间的关系是什么

0