Chrono
Durations
#include <iostream>
#include <chrono>

int main(int argc, char *argv[])
{
	//milliseconds
	//std::chrono::milliseconds m(10);
	//std::cout<<std::chrono::milliseconds::period::num<<std::endl;//1
	//std::cout<<std::chrono::milliseconds::period::den<<std::endl;/1000

	typedef std::chrono::duration<int, std::ratio<1, 1>> seconds_t;
	typedef std::chrono::duration<int, std::milli> millis_t;
	typedef std::chrono::duration<int, std::ratio<3600, 1>> hours_t;

	hours_t h(24);//24 hours
	seconds_t s(3600*24);//3600*24 seconds
	millis_t m(s);//3600*24*1000 ms

	std::cout<<"One day is "<<h.count()<<" hours"<<std::endl;
	std::cout<<"One day is "<<s.count()<<" seconds"<<std::endl;
	std::cout<<"One day is "<<m.count()<<" milliseconds"<<std::endl;

	return 0;
}
			
#include <iostream>
#include <chrono>

int main(int argc, char *argv[])
{
	auto t1 = std::chrono::steady_clock::now();
	std::cout<<"Interval between two time points ..."<<std::endl;
	auto t2 = std::chrono::steady_clock::now();

	auto d = t2 - t1;

	if(d == std::chrono::steady_clock::duration::zero())
	{
		std::cout<<"The internal clock did not tick ..."<<std::endl;
	}

	std::cout<<d.count()<<std::endl;

	return 0;
}
		
Time Points
#include <iostream>
#include <chrono>

int main(int argc, char *argv[])
{
	std::chrono::system_clock::time_point tp = std::chrono::system_clock::now();
	std::chrono::system_clock::duration dtn = tp.time_since_epoch();

	std::cout<<"Current time since epoch: "<<dtn.count()<<" microseconds ..."<<std::endl;

	return 0;
}
			
#include <iostream>
#include <chrono>
#include <ctime>

int main(int argc, char *argv[])
{
	std::chrono::system_clock::time_point tp = std::chrono::system_clock::now();
	std::time_t tt = std::chrono::system_clock::to_time_t(tp);//convert time point to time
	std::cout<<"Time: "<<ctime(&tt)<<std::endl;

	return 0;
}
		
System_clock
#include <iostream>
#include <chrono>
#include <ctime>

int main(int argc, char *argv[])
{
	if(std::chrono::system_clock::is_steady)
		std::cout<<"Steady ..."<<std::endl;
	else
		std::cout<<"System time is not steady ..."<<std::endl;

	//now and to_time_t
	auto t = std::chrono::system_clock::now();
	auto tt = std::chrono::system_clock::to_time_t(t);
	std::cout<<"Time: "<<ctime(&tt)<<std::endl;

	//from_time_t
	time_t tt2;
	time(&tt2);
	std::cout<<"Time: "<<ctime(&tt2)<<std::endl;
	auto t2 = std::chrono::system_clock::from_time_t(tt2);

	auto d =  std::chrono::system_clock::now() - t;
	std::cout<<"Count: "<<d.count()<<std::endl;
	std::cout<<decltype(d)::period::den<<std::endl;

	return 0;
}
		
Steady_clock
#include <iostream>
#include <chrono>
#include <ctime>

int main(int argc, char *argv[])
{
	//now
	auto t = std::chrono::steady_clock::now();

	for(int i = 0; i < 100; i++)
		std::cout<<"*"<<" ";
	std::cout<<std::endl;

	auto d =  std::chrono::steady_clock::now() - t;
	std::cout<<"Count: "<<d.count()<<std::endl;
	std::cout<<decltype(d)::period::den<<std::endl;

	return 0;
}
		
Reference