如何从 std::tm 构建 Boost::posix::ptime
时间: 2023-09-11 07:11:33 浏览: 54
可以使用 `boost::posix_time::ptime_from_tm` 函数将 `std::tm` 转换为 `boost::posix_time::ptime`。该函数需要两个参数:`std::tm` 和一个 `boost::posix_time::time_duration`。`std::tm` 表示日期和时间,`boost::posix_time::time_duration` 表示时间间隔。
例如,以下代码将 `std::tm` 转换为 `boost::posix_time::ptime`:
```c++
#include <boost/date_time/posix_time/posix_time.hpp>
#include <iostream>
int main() {
std::tm tm = {0};
tm.tm_year = 121; // 2021年
tm.tm_mon = 3; // 四月
tm.tm_mday = 20; // 20日
tm.tm_hour = 10; // 10点
tm.tm_min = 30; // 30分
tm.tm_sec = 0; // 0秒
boost::posix_time::ptime pt = boost::posix_time::ptime_from_tm(tm);
std::cout << pt << std::endl;
return 0;
}
```
输出:
```
2021-Apr-20 10:30:00
```
在上面的示例中,我们将 `std::tm` 设置为 2021 年 4 月 20 日 10 点 30 分,并使用 `boost::posix_time::ptime_from_tm` 将其转换为 `boost::posix_time::ptime`。