#define BOOST_ALL_NO_LIB
#define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG
//启用纳秒级别的精确度
//#define BOOST_DATE_TIME_SOURSE
#include<boost/date_time/posix_time/posix_time.hpp>
#include<iostream>
using namespace boost::posix_time;
using namespace std;
int main()
{
time_duration td(1,10,30,1000);//1小时10分30秒1000纳秒
cout<<td<<endl;
//总秒数 总微秒数 总毫秒数
cout<<td.total_seconds()<<" "<<td.total_milliseconds()<<" "<<td.total_microseconds()<<endl;
cout<<td.total_nanoseconds()<<endl;//总纳秒数
cout<<td.fractional_seconds()<<endl;//总纳秒数 注意 fractional_second()的返回值以精确度为单位,纳秒时为总的纳秒,微秒时为总微秒数
cout<<time_duration::unit()<<endl;//静态函数,返回duration的一个最小的单位
cout<<td.resolution()<<endl;//判断当前对象的精度,返回一个枚举类型的精度
cout<<td.num_fractional_digits()<<endl;//返回秒的小数部分的位数
//BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG宏主要影响time_duration的构造函数中小数秒的解释,默认是微秒,定义为纳秒,则为纳秒
cout<<time_duration::ticks_per_second()<<endl;//每秒钟的tick数,返回类型为time_duration::tick_type
getchar();
return 0;
}
默认的time_duration精度为微秒,这里强调纳秒精度的使用,运行结果如下: