在c++++中处理日期时间的关键是使用
在C++中处理日期时间,关键在于使用
C++
使用
立即学习“C++免费学习笔记(深入)”;
#include <iostream> #include <chrono> #include <ctime> int main() { auto now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::cout << "当前时间:" << std::ctime(&now_c) << std::endl; return 0; }
这段代码展示了获取当前时间并将其转换为易读字符串的基本方法。其中,std::chrono::system_clock::now() 获取当前时间点,std::chrono::system_clock::to_time_t() 将时间点转换为 std::time_t 类型,最后使用 std::ctime() 函数将其转换为字符串。
#include <iostream> #include <chrono> int main() { auto start = std::chrono::system_clock::now(); // 模拟一些耗时操作 for (int i = 0; i < 1000000; ++i) { // ... } auto end = std::chrono::system_clock::now(); std::chrono::duration<double> elapsed_seconds = end - start; std::cout << "耗时:" << elapsed_seconds.count() << "s\n"; return 0; }
这个例子展示了如何测量一段代码的执行时间。通过计算开始时间和结束时间的时间差,可以得到代码的执行时长。std::chrono::duration
虽然
#include <iostream> #include <chrono> #include <iomanip> int main() { auto now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::tm now_tm = *std::localtime(&now_c); std::cout << "格式化时间:"; std::cout << std::put_time(&now_tm, "%Y-%m-%d %H:%M:%S") << std::endl; return 0; }
这段代码演示了如何将时间点格式化为 YYYY-MM-DD HH:MM:SS 格式的字符串。首先,将时间点转换为 std::time_t 类型,然后使用 std::localtime() 函数将其转换为本地时间 std::tm 结构体。最后,使用 std::put_time() 函数将 std::tm 结构体格式化为字符串。%Y、%m、%d、%H、%M、%S 是格式化控制符,分别表示年、月、日、小时、分钟和秒。
C++20 引入了对时区的原生支持,通过
#include <iostream> #include <chrono> int main() { auto now = std::chrono::system_clock::now(); auto now_utc = std::chrono::zoned_time{"UTC", now}; auto now_shanghai = std::chrono::zoned_time{"Asia/Shanghai", now}; std::cout << "UTC 时间: " << now_utc << std::endl; std::cout << "上海时间: " << now_shanghai << std::endl; return 0; }
这段代码展示了如何获取 UTC 时间和上海时间。首先,获取当前系统时间的时间点,然后使用 std::chrono::zoned_time 类将其转换为 UTC 时间和上海时间。"UTC" 和 "Asia/Shanghai" 是时区名称。
#include <iostream> #include <chrono> int main() { auto now = std::chrono::system_clock::now(); auto tomorrow = now + std::chrono::hours(24); std::time_t tomorrow_c = std::chrono::system_clock::to_time_t(tomorrow); std::cout << "明天的时间:" << std::ctime(&tomorrow_c) << std::endl; return 0; }
这个例子展示了如何计算明天的时间。通过将当前时间加上 24 小时,可以得到明天的时间。std::chrono::hours(24) 创建一个表示 24 小时的时长。
#include <iostream> #include <chrono> int main() { auto start = std::chrono::high_resolution_clock::now(); // 模拟一些耗时操作 for (int i = 0; i < 1000; ++i) { // ... } auto end = std::chrono::high_resolution_clock::now(); auto duration = std::chrono::duration_cast<std::chrono::nanoseconds>(end - start); std::cout << "耗时:" << duration.count() << "ns\n"; return 0; }
这段代码展示了如何测量一段代码的执行时间,精度为纳秒级别。std::chrono::high_resolution_clock 提供高精度的时间测量,std::chrono::duration_cast<:chrono::nanoseconds> 将时长转换为纳秒级别。
通过掌握
以上就是怎样在C++中处理日期时间_日期时间库使用方法详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号