C++ chrono 获取当前时间

Posted 落霞与孤鹜亓飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ chrono 获取当前时间相关的知识,希望对你有一定的参考价值。

代码

#include <chrono>
#include <ctime>
#include <iostream>

int main() 
  using namespace std;
  using namespace std::chrono;

  // 获取当前时间
  system_clock::time_point now = system_clock::now();

  // 距离1970-01-01 00:00:00的纳秒数
  chrono::nanoseconds d = now.time_since_epoch();
  cout << "current nanoseconds: " << d.count() << endl;

  // 转换为微秒数, 会有精度损失
  chrono::microseconds mcrosec = chrono::duration_cast<chrono::microseconds>(d);
  cout<<"current microseconds: " << mcrosec.count() << endl;

  // 转换为毫秒数, 会有精度损失
  chrono::milliseconds millsec = chrono::duration_cast<chrono::milliseconds>(d);
  cout<<"current milliseconds: " << millsec.count() << endl;
  
  // 转换为秒数,会有精度损失
  chrono::seconds sec = chrono::duration_cast<chrono::seconds>(d);
  cout<<"current seconds: " << sec.count() << endl;

  // 转换为秒数,会有精度损失
  chrono::minutes minutes = chrono::duration_cast<chrono::minutes>(d);
  cout<<"current minutes: " << minutes.count() << endl;

  // 转换为小时
  chrono::hours hours = chrono::duration_cast<chrono::hours>(d);
  cout<<"current hours: "<<hours.count()<<endl;

  // 转换为天
  typedef chrono::duration<int,ratio<24*60*60>> Day;
  Day days = chrono::duration_cast<Day>(d);
  cout<<"current days: "<<days.count()<<endl;

  // 转换成ctime中的time_t类型
  time_t tt = system_clock::to_time_t(now);

  // 输出时间
  cout << "string format: " << ctime(&tt) << endl;
  return 0;

运行结果

chrono介绍

chrono头文件中主要包括三个类:

更多的信息参考: http://www.cplusplus.com/reference/chrono/

以上是关于C++ chrono 获取当前时间的主要内容,如果未能解决你的问题,请参考以下文章

从 C++ 中的 std::chrono::time_point 中提取年/月/日等

std c++ 获取运行时间封装

如何从 C++ 中的 std::chrono::year_month_day 获取工作日编号

c++中的时间处理

c++c++中怎样获取当前小时分钟

C++ chrono 系统时间(以毫秒为单位),时间操作