1. 概述
包含的头文件: #include <boost/date_time/posix_time/posix_time.hpp>
通常的命名空间: using namespace boost::posix_time;
2. 构造函数
跟date的构造函数一样, 都基本构造函数, 字符串构造, clock构造.
ptime还可以通过转换函数构造.
3. 常用函数
可以换取日期, 时间, 秒的小数部分
4. 转换成字符串
包含的头文件: #include <boost/date_time/posix_time/posix_time.hpp>
通常的命名空间: using namespace boost::posix_time;
2. 构造函数
跟date的构造函数一样, 都基本构造函数, 字符串构造, clock构造.
ptime还可以通过转换函数构造.
- void test_ptime_construct()
- {
- using namespace boost::gregorian;
- using namespace boost::posix_time;
- // 1. 常规的构造函数有如下几种:
- ptime p0;
- // 最常用的构造方法
- ptime p1(date(2012, 11, 30), time_duration(1, 2, 3)); // 2012-Nov-30 01:02:03
- ptime p2(p1); // 复制构造
- ptime ps1(neg_infin);
- ptime ps2(pos_infin);
- ptime ps3(not_a_date_time);
- ptime ps4(max_date_time); // 9999-Dec-31
- ptime ps5(min_date_time); // 1400-Jan-01
- // 2. 通过字符串构造
- ptime pstr1(time_from_string("2012-11-30 23:59:59.000"));
- ptime pstr2(from_iso_string("20121130T200001"));
- // 3. 通过clock构造
- ptime pc1(second_clock::local_time());
- ptime pc2(second_clock::universal_time());
- ptime pc3(microsec_clock::local_time());
- ptime pc4(microsec_clock::universal_time());
- // 4. 通过转换函数from_time_t和ptime_from_tm,
- // 注意: 这样通过from_time_t转换成ptime后, 好像是格林威治时间
- time_t t1 = time(NULL);
- ptime pc5 = from_time_t(t1);
- std::cout << pc5 << std::endl;
- tm* t2 = localtime(&t1);
- ptime pc6 = ptime_from_tm(*t2);
- std::cout << pc6 << std::endl;
- }
可以换取日期, 时间, 秒的小数部分
- void test_ptime_accessor()
- {
- using namespace boost::posix_time;
- using namespace boost::gregorian;
- // 获取日期部分
- ptime pt(second_clock::local_time());
- date d1 = pt.date();
- // 获取时间部分
- time_duration td = pt.time_of_day();
- // 获取秒的小数部分
- __int64 l = td.fractional_seconds();
- std::cout << l << std::endl;
- }
- void test_ptime2string()
- {
- using namespace boost::posix_time;
- time_duration td1(1, 2, 3, 4);
- std::cout << to_simple_string(td1) << std::endl;
- std::cout << to_iso_string(td1) << std::endl;
- }
本文介绍了Boost库中posix_time组件的基本使用方法,包括ptime类的构造方式、常见操作及如何将时间转换为字符串等实用技巧。

2273

被折叠的 条评论
为什么被折叠?



