boost库中获取当前时间的ptime的方法

boost库作为c++中非常优秀的库,得到了非常广泛的应用,其配有相应的文档,可以做学习之用。但是,其文档较为简略,在使用ptime时,为了获得当前时间的ptime变量,略有收获,随写文章记录之。

 

ptime是一个很方便强大的类,其中特性之一就是可以用多种不同的方式来获得一个ptime对象,boost的文档中给出了如下代码:

  ptime t(second_clock::local_time());


  ptime t(second_clock::universal_time());


  ptime t(microsec_clock::local_time());

  ptime t(microsec_clock::universal_time());

 这段代码简要的说明了其获取不同精度和事件类型的使用方式。其实,其中的microsec_clock是一个模板类,需要传递一个模板参数,

 template<class time_type>
  class microsec_clock
  {

 在boost中,有一个文件boost\date_time\posix_time\posix_time_types.hpp,其中包含了该time_type的设置,也就是设置为ptime,其中有如下代码:

 

      

#ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK
  //! A time clock that has a resolution of one microsecond
  /*! \ingroup time_basics
   */
  typedef date_time::microsec_clock<ptime> microsec_clock;
#endif

   所以,在posix_time名字空间使用文档中的代码是没有问题的,但是如果同时在代码中引入了date_time名字空间,将会出现冲突问题,这个时候需要指明其参数。  同时,从这里也能看到,
microsec_clock类也是一个模板,其能用于不同的time类.

 

 

你可能感兴趣的:(boost)