提升::posix_time。如何在同一应用程序中同时表示微秒和纳秒日期时间
Posted
技术标签:
【中文标题】提升::posix_time。如何在同一应用程序中同时表示微秒和纳秒日期时间【英文标题】:boost::posix_time. How to represent both microsecond and nanosecond datetimes in the same application 【发布时间】:2011-09-01 07:41:59 【问题描述】:我想使用 boost::posix_time::ptime 作为具有微秒分辨率的日期时间的 64 位表示。 我有时也想用 96 位的纳秒分辨率表示日期时间。
不幸的是,您似乎必须选择其中之一。为什么 boost 开发人员通过 #define 而不是模板参数来做到这一点?有没有办法在一个应用程序中同时表示这两种类型?
发件人:http://www.boost.org/doc/libs/1_47_0/doc/html/date_time/details.html#date_time.buildinfo
"要使用备用分辨率(96 位纳秒),变量 BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG 必须在库用户项目文件(即 Makefile、Jamfile 等)中定义。公历系统不使用此宏,因此在建立图书馆。”
【问题讨论】:
【参考方案1】:BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG
基本上使数据类型暂时使用更高的进动。既然你需要它,就用它。没看懂,
“我想使用 boost::posix_time::ptime 作为 64 位表示 具有微秒分辨率的日期时间,"
进入那个。您是说您使用ptime
类型作为时间的二进制/磁盘表示?
【讨论】:
当我的某些日期时间只需要微秒或毫秒精度时,我不想为 96 位付费。这就是#define 存在的原因(如果 96 位没有问题,他们总是使用纳秒精度)以上是关于提升::posix_time。如何在同一应用程序中同时表示微秒和纳秒日期时间的主要内容,如果未能解决你的问题,请参考以下文章
如何实例化 boost 类`boost::posix_time::seconds` C++ 类?
一种将 boost::posix_time::ptime 转换为 __int64 的方法