利用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 时间的更多相关文章

  1. boost 时间与日期处理

    博客转载自: 类 特点 缺点 说明 timer 计时基类 不适合大跨度时间 适用大部分的普通计时 progress_timer 继承自timer 可以自动写入流中 只精确到0.01s 如果需要更精确, ...

  2. date tod = boost::gregorian::day_clock::local_day(); //当前日期

    boost 时间和日期 - 苦逼码农 - 博客频道 - CSDN.NET date tod = boost::gregorian::day_clock::local_day(); //当前日期

  3. boost开发指南

    C++确实很复杂,神一样的0x不知道能否使C++变得纯粹和干爽? boost很复杂,感觉某些地方有过度设计和太过于就事论事的嫌疑,对实际开发工作的考虑太过于理想化.学习boost本身就是一个复杂度,有 ...

  4. Spell Boost

    Spell Boost 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Shadowverse is a funny card game. One day you are playing ...

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

    timer库概述 timer库包含三个组件:分别是计时器类timer.progress_timer和进度指示类progress_display timer 主要作用是计时,精确度是毫秒级.下面是一个简 ...

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

    ●timer库 #include <boost\timer.hpp> #include <boost\progress.hpp> 1.timer类 // timer类的示例. ...

  7. 利用boost获取时间并格式化

    利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD #include <boost/date_time/gregorian/gregorian.hpp& ...

  8. (一)boost库之日期、时间

    (一)boost库之日期.时间 一.计时器  计时器,通常在一个项目中统计一个函数的执行时间是非常实用的.   #include <boost/timer.hpp> void PrintU ...

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

    <开篇> Boost.DateTime库提供了时间日期相关的计算.格式化.转换.输入输出等等功能,为C++的编程提供了便利.不过它有如下特点: 1. Boost.DateTime 只支持1 ...

随机推荐

  1. implement min heap

    class MinHeap{ private ArrayList<Integer> arr; private int DEFAULT_LEN = 10; public MinHeap(){ ...

  2. Centos7 pip 安装MySQLdb(mysql-python)出错

    租了个阿里云的Centos7的ECS,需要使用pip安装MySQLdb模块.也就是mysql-python模块. 但是遇到问题 Collecting mysql-python Downloading ...

  3. 【uoj#142】【UER #5】万圣节的南瓜灯 乱搞+并查集

    题目描述 给出一张 $n\times m$ 的网格图,两个格子之间有一条双向边,当且仅当它们相邻,即在网格图中有一条公共边. 特殊地,对于 $1\le x\le n​$ ,$(x,1)​$ 和 $(x ...

  4. Python 字节码是什么

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  5. js浏览器缩放提示

    data() { return { instance: null, isZoomOpen: false }; }, mounted() { const that = this; this.isZoom ...

  6. python2 python3共存解决方案

    作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  7. [BZOJ4044]Virus synthesis 回文自动机的DP

    4044: [Cerc2014] Virus synthesis Time Limit: 20 Sec  Memory Limit: 128 MB Description Viruses are us ...

  8. [BZOJ2502]清理雪道 有上下界网络流(最小流)

    2502: 清理雪道 Time Limit: 10 Sec  Memory Limit: 128 MB Description        滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场 ...

  9. 【刷题】BZOJ 3591 最长上升子序列

    Description 给出1~n的一个排列的一个最长上升子序列,求原排列可能的种类数. Input 第一行一个整数n. 第二行一个整数k,表示最长上升子序列的长度. 第三行k个整数,表示这个最长上升 ...

  10. yii2 查询数据库语法

    $query0 = ImGroupUser::find()->where(['gid'=>'56680dfc60b215d62104a4d8'])->select('user_cli ...