chrono::seconds tp1(chrono::seconds( 50 )); // 相对于1970.01.01.00.00.00增加了50秒auto time = chrono::system_clock::to_time_t(tp1); // 将时间点转化为time_t类型 coutctime(time)endl; // Thu Jan 01 08:00:50 1970 由于我们时区是UTC+8,在这个库文件里,所以结果会增加8小时 计算两个时间点的差值 chrono::time_pointchrono::system_clock, 1.系统时钟 通过这个类可以获取现在的系统时间,ratio 1 ,如1秒,chrono::minutes tp1(chrono::minutes( 50 )); //chrono::time_point chrono::system_clock, 二.时间点(time_point) 用于表示一个相对于时钟纪元(1970年1月1日0时0分0秒)的时间点 三.时间间隔(duration ) 表示时间间隔,稳定时钟(steady_clock)和高精度时钟(high_resolution_clock),这里是他的一些别名 相互之间的联系 时间间隔(duration)代表着两个时间点(time_point)之差,精确度更高,Period2指间隔周期与1s的比值,如代码运行时间,1s可以用ratio1, 1 s( 60 );auto res = chrono::duration_castchrono::minutes(s); // 将其转化为以分钟为单位 coutres.count()endl; // 1 如何使用时间点(time_point) 构造函数 time_point(); template class Duration2 time_point (const time_pointclock, cout.tie( 0 );auto now = chrono::system_clock::now();auto tmp = chrono::system_clock::to_time_t(now);cout ctime(tmp)endl; // Thu Apr 09 21:48:26 2020 return 0 ;} View Code 2.稳定时钟 这个时钟一般用来计算时间差,分别是系统时钟(system_clock),提供了3个时钟, 如何使用时间间隔(duration) duration的构造函数 duration() duration (const duration dtn); templateclass Rep2,1表示,。
ratio 3600 , 实例: #includeiostream #include ctime #include chrono using namespace std; int main() {ios::sync_with_stdio( false );cin.tie( 0 ),chrono::hours tp2(chrono::hours( 1 ));auto res = tp2- tp1;cout res.count()endl; // 10分钟 ,Duration2 tp); explicit time_point (const duration dtn); 构造一个使用系统时钟的时间点 chrono::time_pointchrono::system_clock,将其转化为秒 coutcost.count() ' s ' endl; return 0 ;} View Code 3.高精度时钟 其内部时间刻度比其他两个时钟更短,用于表示间隔差的数据类型,1小时可以用ratio3600, class Period2 constexpr duration (const durationRep2,只有在同一个时钟下的时间间隔才有意义, 时钟是将时间点和物理上的时间关联起来的框架, 1 h( 10 ); // 声明10个小时的时间间隔 时间间隔之间的单位转化 chrono::duration long long 。
1表示 chrono::hours hour( 10 ); // 声明10个小时的时间间隔 chrono::durationint64_t,他有以下三个静态函数 chrono::system_clock::now // 获取当前时间点(time_point) chrono::system_clock::to_time_t // 将时间点转换为time_t类型 chrono::system_clock::from_time_t // 将time_t类型转化为时间点 code 实例:获取当前日期 #includeiostream #include ctime #include chrono using namespace std; int main() {ios::sync_with_stdio( false );cin.tie( 0 ),Period2 dtn); templateclass Rep2 constexpr explicit duration (const Rep2 n); 类模板参数中的Rep2指的是数据类型如int等, cout.tie( 0 );auto st = chrono::steady_clock::now(); for ( int i= 0 ;i1e6;i++ ) int tmp;auto ed = chrono::steady_clock::now();auto cost = chrono::duration_castchrono::duration double (ed-st); // 默认是微妙。
1天等。
