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

1. 输出YYYYMMDD

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

2. 输出YYYYMMDD-HH:MM:SS

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

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

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

利用boost获取时间并格式化的更多相关文章

  1. js Date()获取时间,格式化输出,时间比较大小

    1.获取时间并且格式化输出 new Date().toLocaleString('cn',{hour12:false}) //2018/12/6 17:57:15 new Date().toLocal ...

  2. 利用js获取时间并输出值

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式

    要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...

  4. 单位换算(格式化十进制数-B),获取时间工具类CommenUtil

    package com.example.administrator.filemanager.utils;import java.text.DecimalFormat;import java.text. ...

  5. java 获取系统当前时间并格式化

      java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32 ...

  6. JS获取当前时间并格式化"yyyy-MM-dd HH:mm:ss"

    先来看下JS中的日期操作: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年 ...

  7. js 获取当前时间并格式化

      js 获取当前时间并格式化 CreateTime--2018年2月7日11:04:16 Author:Marydon 方式一 /** * 获取系统当前时间并格式化 * @returns yyyy- ...

  8. thymeleaf获取当前时间并格式化输出

    有时候会需要在模板中直接打印时间的需求,如果输出一个时间还需要在java类中去获取model的话,那未免也太麻烦了,以下为thymeleaf在模板中直接获取时间戳并格式化输的代码 获取时间戳 < ...

  9. js获取当前时间的年月日时分秒以及时间的格式化

    1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear( ...

随机推荐

  1. Eclipse UML插件AmaterasUML的配置及使用

    AmaterasUML是个人觉得最好用的Eclipse UML插件,可以通过拖拽Java源文件,轻松生成类图结构,同时支持活动图.时序图和用例图.它的官方下载地址是:http://sourceforg ...

  2. CentOS 恢复 rm -rf * 误删数据(转)

    一. 将磁盘分区挂载为只读 这一步很重要,并且在误删除文件后应尽快将磁盘挂载为只读.越早进行,恢复的成功机率就越大. 1.  查看被删除文件位于哪个分区 [root@localhost  ~]# mo ...

  3. Java关键字transient和volatile

    transient标记的变量,在进行序列化的时候,这个字段不进行序列化操作. volatile标记的变量,在进行读写时,必须强制的与内存同步,即在读的时候需要从内存中读取,写的时候也需要回写到内存中. ...

  4. Http Clinet使用

    Http Client是个apache下的一个开源包,用于使用http协议访问服务的java代码编写. Http Client的主要功能: (1)实现了所有 HTTP 的方法(GET,POST,PUT ...

  5. 【android】java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused

    调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlStrin ...

  6. winform textbox 的自动实现功能

    好久没写博客了,主要是太懒了,之前因为做bs的比较多现在想转cs端了,虽然现在做cs也一年了,可接触的东西太过零碎了,以至于感觉这一年好像什么都没有学到.估计是因为学了之后没有记录,不扎实,然后又忘记 ...

  7. Android再学习-20141018-布局-进度条

    20141018-Android再学习 对齐至控件的基准线 为了保证印刷字母的整齐而划定的线(四线三格的第三条线). android:layout_alignBaseline 与父控件的四个边缘对齐( ...

  8. Python爬虫学习:三、爬虫的基本操作流程

    本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...

  9. NAS4Free 安装配置(二)系统安装

    NAS4Free系统安装 看一看BIOS设置 开机按DEL进BIOS 改日期时间 这里可以设置RAID,因为ZFS的RAID功能更好,所以我们在这里不配置RAID 制作LiveUSB 用软件(USB ...

  10. editor.md实现Markdown编辑器

    editor.md实现Markdown编辑器 Markdown和Editor.md简介 Markdwon编辑器在技术工作者圈子中已经越来越流行,简单的语法,统一的格式,强大的扩展功能,最重要的是:你可 ...