#include <iostream>
#include <iomanip>
#include <chrono>
#include <ctime>
#include <thread> // 包含此头文件以使用 std::this_thread
// 将 std::chrono::system_clock::time_point 转换为本地时间
std::tm to_tm(const std::chrono::system_clock::time_point& tp) {
auto duration = tp.time_since_epoch();
auto secs = std::chrono::duration_cast<std::chrono::seconds>(duration).count();
return *std::localtime(&secs);
}
// 输出时间点的格式化字符串
void print_time_point(const std::chrono::system_clock::time_point& tp) {
auto tm = to_tm(tp);
std::cout << std::put_time(&tm, "%F %T") << std::endl;
}
int main() {
// 获取当前时间点
auto now = std::chrono::system_clock::now();
// 输出格式化后的当前时间
print_time_point(now);
// 心跳检测循环
while (true) {
// 模拟一些工作...
std::this_thread::sleep_for(std::chrono::seconds(5)); // 等待5秒
// 获取新的当前时间点
now = std::chrono::system_clock::now();
// 输出格式化后的当前时间作为心跳信息
print_time_point(now);
}
return 0;
}
执行效果: