在 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;
}
<chrono>
库提供了高精度的时间测量和操作功能,适合需要精确时间控制的场景。<ctime>
库提供了处理日期和时间的基本功能,适合简单的日期和时间操作。你可以根据具体需求选择合适的库来处理日期和时间。