【Boost】ptime类介绍

1. 概述
包含的头文件: #include <boost/date_time/posix_time/posix_time.hpp>
通常的命名空间: using namespace boost::posix_time;
2. 构造函数
跟date的构造函数一样, 都基本构造函数, 字符串构造, clock构造. 
ptime还可以通过转换函数构造.

[cpp]  view plain  copy
 print ?
  1. void test_ptime_construct()  
  2. {  
  3.     using namespace boost::gregorian;  
  4.     using namespace boost::posix_time;  
  5.   
  6.     // 1. 常规的构造函数有如下几种:  
  7.     ptime p0;  
  8.     // 最常用的构造方法  
  9.     ptime p1(date(2012, 11, 30), time_duration(1, 2, 3));   // 2012-Nov-30 01:02:03  
  10.     ptime p2(p1);                                           // 复制构造  
  11.     ptime ps1(neg_infin);  
  12.     ptime ps2(pos_infin);  
  13.     ptime ps3(not_a_date_time);  
  14.     ptime ps4(max_date_time);   // 9999-Dec-31  
  15.     ptime ps5(min_date_time);   // 1400-Jan-01  
  16.   
  17.     // 2. 通过字符串构造  
  18.     ptime pstr1(time_from_string("2012-11-30 23:59:59.000"));  
  19.     ptime pstr2(from_iso_string("20121130T200001"));  
  20.   
  21.     // 3. 通过clock构造  
  22.     ptime pc1(second_clock::local_time());  
  23.     ptime pc2(second_clock::universal_time());  
  24.     ptime pc3(microsec_clock::local_time());  
  25.     ptime pc4(microsec_clock::universal_time());  
  26.   
  27.     // 4. 通过转换函数from_time_t和ptime_from_tm,   
  28.     // 注意: 这样通过from_time_t转换成ptime后, 好像是格林威治时间  
  29.     time_t t1 = time(NULL);  
  30.     ptime pc5 = from_time_t(t1);  
  31.     std::cout << pc5 << std::endl;  
  32.   
  33.     tm* t2 = localtime(&t1);  
  34.     ptime pc6 = ptime_from_tm(*t2);  
  35.     std::cout << pc6 << std::endl;  
  36. }  
3. 常用函数
可以换取日期, 时间, 秒的小数部分
[cpp]  view plain  copy
 print ?
  1. void test_ptime_accessor()  
  2. {  
  3.     using namespace boost::posix_time;  
  4.     using namespace boost::gregorian;  
  5.   
  6.     // 获取日期部分  
  7.     ptime pt(second_clock::local_time());  
  8.     date d1 = pt.date();  
  9.   
  10.     // 获取时间部分  
  11.     time_duration td = pt.time_of_day();  
  12.   
  13.     // 获取秒的小数部分  
  14.     __int64 l = td.fractional_seconds();  
  15.     std::cout << l << std::endl;  
  16. }  
4. 转换成字符串
[cpp]  view plain  copy
 print ?
  1. void test_ptime2string()  
  2. {  
  3.     using namespace boost::posix_time;  
  4.   
  5.     time_duration td1(1, 2, 3, 4);  
  6.     std::cout << to_simple_string(td1) << std::endl;  
  7.     std::cout << to_iso_string(td1) << std::endl;  
  8. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值