0
点赞
收藏
分享

微信扫一扫

C++ 时间处理

343d85639154 2022-04-16 阅读 86
c++时间

C++ 时间处理

flyfish
版本 C

文章目录

代码实例需要的头文件

#include <chrono>
#include <thread>
#include <iostream>
#include <iomanip>

获取当前时间

auto t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
std::cout << std::put_time(std::localtime(&t), "%Y-%m-%d %H.%M.%S") << std::endl;

两个时间的间隔 可用于统计代码耗时

auto start = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::seconds(3));//当前线程休眠3s
auto end = std::chrono::system_clock::now();
//duration_cast不同时间精度间的转换
auto count_s = std::chrono::duration_cast<std::chrono::seconds>(end - start).count(); // s
auto count_ms = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count(); // ms
auto count_us = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); // us
std::cout<<"s:"<<count_s<<std::endl;//s:3
std::cout<<"ms:"<<count_ms<<std::endl;//ms:3000
std::cout<<"us:"<<count_us<<std::endl;//ms:3000955

不同单位的时间计算间隔

std::chrono::minutes min{1};//1分钟
std::chrono::seconds sec{1};//1秒钟
std::chrono::milliseconds mills{300};//500毫秒
auto dul = sec - mills;//两者差值,700ms
std::this_thread::sleep_for(std::chrono::milliseconds(100));
std::cout<< dul.count()<<std::endl;//700

距离1970-01-01的时间间隔

//时钟纪元
const auto p = std::chrono::time_point<std::chrono::system_clock>{};
std::time_t epoch_time = std::chrono::system_clock::to_time_t(p);
std::cout<< std::ctime(&epoch_time);//Thu Jan  1 08:00:00 1970 北京时间


//距离1970-01-01的时间间隔
std::cout << "s 秒:"<<std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count() << std::endl;
std::cout << "ms 毫秒:" << std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()<<std::endl;
std::cout << "us 微秒:" << std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now().time_since_epoch()).count() << std::endl;
std::cout << "ns 纳秒:" << std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::system_clock::now().time_since_epoch()).count() << std::endl;
举报

相关推荐

0 条评论