在C++中,时间相关的处理主要涉及到 <chrono>
和 <ctime>
这两个库。<chrono>
是C++11引入的一个新的时间库,它提供了高精度的时间处理功能。<ctime>
是C语言时间库的封装,提供了比较基础的时间处理功能。
![图片[1]_探索C++中高效且灵活的时间处理技巧,包括chrono与ctime库的应用_知途无界](https://zhituwujie.com/wp-content/uploads/2024/04/d2b5ca33bd20240429130558.png)
以下是使用这两个库的一些基本示例:
1. 使用 <chrono>
库
<chrono>
库提供了各种时间点和持续时间的表示,以及它们之间的转换。
#include <iostream>#include <chrono>int main() {// 获取当前时间点auto now = std::chrono::system_clock::now();// 转换为自epoch以来的秒数auto duration = now.time_since_epoch();auto seconds = std::chrono::duration_cast<std::chrono::seconds>(duration).count();std::cout << "Seconds since epoch: " << seconds << std::endl;// 休眠一段时间std::this_thread::sleep_for(std::chrono::seconds(1));return 0;}#include <iostream> #include <chrono> int main() { // 获取当前时间点 auto now = std::chrono::system_clock::now(); // 转换为自epoch以来的秒数 auto duration = now.time_since_epoch(); auto seconds = std::chrono::duration_cast<std::chrono::seconds>(duration).count(); std::cout << "Seconds since epoch: " << seconds << std::endl; // 休眠一段时间 std::this_thread::sleep_for(std::chrono::seconds(1)); return 0; }#include <iostream> #include <chrono> int main() { // 获取当前时间点 auto now = std::chrono::system_clock::now(); // 转换为自epoch以来的秒数 auto duration = now.time_since_epoch(); auto seconds = std::chrono::duration_cast<std::chrono::seconds>(duration).count(); std::cout << "Seconds since epoch: " << seconds << std::endl; // 休眠一段时间 std::this_thread::sleep_for(std::chrono::seconds(1)); return 0; }
2. 使用 <ctime>
库
<ctime>
库提供了获取当前时间、格式化时间等功能。
#include <iostream>#include <ctime>int main() {// 获取当前时间std::time_t t = std::time(nullptr);// 转换为本地时间std::tm* local_time = std::localtime(&t);// 格式化时间char time_string[80];std::strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", local_time);std::cout << "Current time: " << time_string << std::endl;return 0;}#include <iostream> #include <ctime> int main() { // 获取当前时间 std::time_t t = std::time(nullptr); // 转换为本地时间 std::tm* local_time = std::localtime(&t); // 格式化时间 char time_string[80]; std::strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", local_time); std::cout << "Current time: " << time_string << std::endl; return 0; }#include <iostream> #include <ctime> int main() { // 获取当前时间 std::time_t t = std::time(nullptr); // 转换为本地时间 std::tm* local_time = std::localtime(&t); // 格式化时间 char time_string[80]; std::strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", local_time); std::cout << "Current time: " << time_string << std::endl; return 0; }
请注意,<chrono>
库提供了更高精度和更灵活的时间处理功能,因此在现代的C++代码中,更推荐使用 <chrono>
库而不是 <ctime>
库。但是,如果你正在处理一些旧代码,或者你的代码需要与C语言的API进行交互,那么 <ctime>
库仍然是一个有用的工具。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容