c++ 使用chrono打印年月日时分秒毫秒
时间: 2024-09-15 09:09:40 浏览: 14
在 C++ 中,`<chrono>` 模块提供了一种方便的方式来处理日期和时间,包括精确到毫秒的时间点。如果你想打印年、月、日、时、分、秒和毫秒,你可以使用 `std::chrono::system_clock` 和 `std::chrono::time_point` 类。以下是一个简单的示例:
```cpp
#include <iostream>
#include <chrono>
int main() {
// 获取当前时间(以 system_clock 的时间单位)
auto now = std::chrono::system_clock::now();
// 将时间转换为可读的格式,比如 `std::chrono::local_time`
auto local_time = std::chrono::system_clock::to_local_time(now);
// 从 local_time 获取日期和时间
auto time_since_epoch = local_time.time_since_epoch();
auto duration = std::chrono::duration_cast<std::chrono::hours>(time_since_epoch).count();
auto days = duration / (24 * 3600);
time_since_epoch -= std::chrono::hours(days * 24);
duration = std::chrono::duration_cast<std::chrono::minutes>(time_since_epoch).count();
int hours = duration / 60;
duration %= 60;
duration = std::chrono::duration_cast<std::chrono::seconds>(time_since_epoch).count();
int minutes = duration / 60;
duration %= 60;
duration = std::chrono::duration_cast<std::chrono::milliseconds>(time_since_epoch).count();
// 打印日期和时间
std::cout << "Date: " << std::put_time(std::localtime(&local_time), "%Y-%m-%d") << "\n";
std::cout << "Time: " << std::put_time(std::localtime(&local_time), "%H:%M:%S:%03d\n");
return 0;
}
```
这段代码首先获取了当前时间,然后将其转换为本地时间格式,接着分别计算出了年、月、日、小时、分钟和秒数,以及毫秒数。`std::put_time` 函数用于根据指定的格式字符串输出时间。
请注意,这个例子假设你希望按照本地时间进行显示,如果你需要其他时区的格式,你需要调整 `std::localtime` 的部分。