boost 时间

利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题。

1.
输出YYYYMMDD

[cpp] view plaincopy

#include <boost/date_time/gregorian/gregorian.hpp>  
#define BOOST_DATE_TIME_SOURCE  
  
std::string strTime = boost::gregorian::to_iso_string(\  
boost::gregorian::day_clock::local_day());  
  
std::cout << strTime.c_str() << std::endl;

    2.
    输出YYYYMMDD-HH:MM:SS

[cpp] view plaincopy

  1. #include <boost/date_time/posix_time/posix_time.hpp>  
    #define BOOST_DATE_TIME_SOURCE  
      
    std::string strTime = boost::posix_time::to_iso_string(\  
    boost::posix_time::second_clock::local_time());  
      
    // 这时候strTime里存放时间的格式是YYYYMMDDTHHMMSS,日期和时间用大写字母T隔开了  
      
    int pos = strTime.find(‘T‘);  
    strTime.replace(pos,1,std::string("-"));  
    strTime.replace(pos + 3,0,std::string(":"));  
    strTime.replace(pos + 6,0,std::string(":"));  
      
    std::cout << strTime.c_str() << std::endl;

3.
计算时间间隔。boost里计算时间间隔的功能很多很强大,我列举的仅仅是我目前用到的。

[cpp] view plaincopy

#include <boost/date_time/posix_time/posix_time.hpp>  
#include <boost/thread.hpp>  
#define BOOST_DATE_TIME_SOURCE  
  
boost::posix_time::ptime time_now,time_now1;  
boost::posix_time::millisec_posix_time_system_config::time_duration_type time_elapse;  
  
// 这里为微秒为单位;这里可以将microsec_clock替换成second_clock以秒为单位;  
time_now = boost::posix_time::microsec_clock::universal_time();  
  
// sleep 100毫秒;  
boost::this_thread::sleep(boost::posix_time::millisec(100));  
  
time_now1 = boost::posix_time::microsec_clock::universal_time();  
  
time_elapse = time_now1 - time_now;  
  
// 类似GetTickCount,只是这边得到的是2个时间的ticket值的差,以微秒为单位;  
int ticks = time_elapse.ticks();  
  
// 得到两个时间间隔的秒数;  
int sec = time_elapse.total_seconds();

boost 时间

时间: 2024-12-07 07:39:27

boost 时间的相关文章

8 C++ Boost 日期 时间

目录: 1,日期 构造date 继续构造date对象 date特别的值 date能访问的函数 boost date_time 与tm转换 日期的加减运算 计算时间段 日期的迭代器 日期生成器 4月的第一个/最后一个星期一 日期生成器: 某月的第几个星期几,某天的前一个/后一个星期一 日期生成器算法 日历类 gregorian_calendar 2,时间 posix 时间的构造 时间的操作 时间段 操作 时间迭代器 1,日期 构造date [email protected]:~/boost$ ca

Boost学习笔记(二) 时间与日期

timer库概述 timer库包含三个组件:分别是计时器类timer.progress_timer和进度指示类progress_display timer 主要作用是计时,精确度是毫秒级.下面是一个简单的例子 #include <boost\timer.hpp> #include <iostream> using namespace boost; using namespace std; int main() { timer t; //声明一个计时器,开始计时 cout<&l

Boost库简单运用——时间与日期的处理(一)

对于时间与日期的处理一直都是一个比较复杂的问题,而C++中对于时间与日期的处理也是比较简陋的,并不像Java.C#之流提供了非常方便易用的类.但随着Boost的推出,对于时间的处理也变得越来越简单方便了,今天我们就来学习一些较为方便的处理方式: 首先,我们先来了解Boost中对时间处理的一个比较基础的类,也是后续几个类的基类--timer. timer类可以测量时间的流逝,依据平台的不同,提供了毫秒甚至微秒级别的时间控制,我们也可以用它来做一个很简单的计时器,下面,我们通过代码来解释timer的

《Boost程序库完全开发指南》读书笔记-日期时间

timer库 #include <boost\timer.hpp> #include <boost\progress.hpp> 1.timer类 // timer类的示例. void Lib_Demo_timer::Demo_timer() { timer t; cout << "可度量的最大单位:" << t.elapsed_max() / 3600 << "小时" << endl; cout

(一)boost库之日期、时间

(一)boost库之日期.时间 一.计时器 计时器,通常在一个项目中统计一个函数的执行时间是非常实用的. #include <boost/timer.hpp> void PrintUserTime() { boost::timer t; //定义一个计时类,开始计时 std::cout << "可度量的最大时间:" << t.elapsed_max()/3600 << "h" << std::endl; s

利用boost获取时间并格式化

利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD [cpp] view plaincopy #include <boost/date_time/gregorian/gregorian.hpp> #define BOOST_DATE_TIME_SOURCE std::string strTime = boost::gregorian::to_iso_string(\ boost::gregorian::day_clock::local_day());

boost 日期时间计算

示例代码如下: 1 #include <boost/date_time/gregorian/gregorian.hpp> 2 #include <boost/date_time/posix_time/posix_time.hpp> 3 using namespace boost::gregorian; 4 using namespace boost::posix_time; 5 #include <iostream> 6 using namespace std; 7 #

Boost库简单运用——时间与日期的处理(二)

在上文中,我们了解了一种对时间进行处理的boost类,今天我们就来学习另一种时间处理的类--progress_timer,它继承于timer类,拥有timer类的功能,又在其易用性上更进一步,接下来我们以代码对该类进行说明: #include <iostream> #include <boost/progress.hpp> int main() { boost::progress_timer pt1; std::cout << pt1.elapsed_max() <

[Boost]boost的时间和日期处理-(2)时间的操作

<开篇> 本篇紧接着boost上篇叙述Boost::DateTime的时间处理.在C++中,常见的时间有time_t, FILETIME和tm,而boost中用ptime. 构造ptime 1.ptime的构造函数有四种: 1: using namespace boost::posix_time; 2: using namespace boost::gregorian; 3: ptime pt(date(2013,Jan,24),time_duration(1,2,3)); //由date和t