提升::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 的方法

将 boost::posix_time::ptime 转换为 NTP 时间戳

_POSIX_TIMERS的可能值是什么?

boost 日期时间计算

使用互斥锁的正确方法