ubuntu

Ubuntu C++如何处理日期和时间

小樊
39
2025-06-16 00:21:23
栏目: 编程语言

在 Ubuntu 上使用 C++ 处理日期和时间,你可以使用 <chrono><ctime> 这两个库。下面是一些基本的示例:

使用 <chrono>

<chrono> 是 C++11 引入的一个时间库,提供了高精度的时间测量和操作功能。

示例:获取当前时间并打印

#include <iostream>
#include <chrono>

int main() {
    auto now = std::chrono::system_clock::now();
    auto now_c = std::chrono::system_clock::to_time_t(now);

    std::cout << "Current time: " << std::ctime(&now_c);
    return 0;
}

示例:计算时间差

#include <iostream>
#include <chrono>

int main() {
    auto start = std::chrono::high_resolution_clock::now();

    // 模拟一些操作
    for (int i = 0; i < 1000000; ++i) {
        // 做一些事情
    }

    auto end = std::chrono::high_resolution_clock::now();
    auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);

    std::cout << "Duration: " << duration.count() << " milliseconds" << std::endl;
    return 0;
}

使用 <ctime>

<ctime> 是 C 语言中的一个时间库,提供了处理日期和时间的功能。

示例:获取当前日期和时间

#include <iostream>
#include <ctime>

int main() {
    std::time_t now = std::time(nullptr);
    std::tm* local_time = std::localtime(&now);

    char buffer[80];
    std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_time);

    std::cout << "Current date and time: " << buffer << std::endl;
    return 0;
}

示例:解析字符串为时间

#include <iostream>
#include <ctime>
#include <string>

int main() {
    std::string time_str = "2023-10-05 14:30:00";
    std::tm tm = {};
    std::istringstream ss(time_str);

    ss >> std::get_time(&tm, "%Y-%m-%d %H:%M:%S");

    if (ss.fail()) {
        std::cerr << "Failed to parse time string" << std::endl;
        return 1;
    }

    std::time_t time = std::mktime(&tm);
    std::cout << "Parsed time: " << std::ctime(&time);
    return 0;
}

总结

你可以根据具体需求选择合适的库来处理日期和时间。

0
看了该问题的人还看了