利用boost获取时间并格式化

时间:2022-09-15 09:22:29

利用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&lpar;&rpar;获取时间,格式化输出,时间比较大小

    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基础进阶&colon;时间类要点摘要&comma;时间Date类实现格式化与解析源码实现详解&comma;LocalDateTime时间类格式化与解析源码实现详解&comma;Period&comma;Duration获取时间间隔与源码实现&comma;程序异常解析与处理方式

    要点摘要 课堂笔记 日期相关 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获取当前时间并格式化&quot&semi;yyyy-MM-dd HH&colon;mm&colon;ss&quot&semi;

    先来看下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. percona-toolkit 之 【pt-deadlock-logger】说明

    摘要: 死锁:是指两个或则多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,而导致恶性循环的现象:当产生死锁的时候,MySQL会回滚一个小事务的SQL,确保另一个完成.上面是死锁的概念,而在M ...

  2. 【LeetCode OJ】Palindrome Partitioning II

    Problem Link: http://oj.leetcode.com/problems/palindrome-partitioning-ii/ We solve this problem by u ...

  3. LoadRunner调用Java程序—性能测试-转载

    LoadRunner调用Java程序—性能测试   为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表.本次将重点讨论LoadRunn ...

  4. Linux内核系列之Block块层(一)

    .Block块层入口函数为 genhd_device_init(),先对该函数开始分析: 函数实现源码: static int __init genhd_device_init(void) {     ...

  5. 第二篇Activity:2、任务和返回堆栈(Tasks and Back Stack)之基本介绍

    参考:http://developer.android.com/guide/components/tasks-and-back-stack.html 在Android中,一个应用程序里面,通常包含了多 ...

  6. 圖片裁剪大頭貼功能 - ASP&period;NET WebForm &plus; jQuery &plus; imgAreaSelect

    系統操作環境: ASP.NET WebForm .NET Framework 4.0 (C#) jQuery 1.7.1 imgAreaSelect 0.9.8 目錄結構: 與之前使用ASP.NET ...

  7. JavaScript Trick

    JavaScript 判断 一个元素 是否在 数组中 : indexOf 原理 : array.indexOf(item) 如果 item 不在 array 中 , 则返回 -1 ; 如果 item ...

  8. 推荐一个c&plus;&plus;小巧开源且跨平台的图像解码库

    该图像解码库仅仅三个文件. 图像处理封装: spot.cpp spot.h 解码库实现: spot.c 支持图片文件格式如下: File format Read Write BMP files yes ...

  9. java&period;util&period;BitSet 详细分析 学习笔记

    1,BitSet类    大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志.   此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的 ...

  10. SpringMVC&plus;Apache Shiro&plus;JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权

    最新项目比较忙,写文章的精力就相对减少了,但看到邮箱里的几个催更,还是厚颜把剩下的文档补上. 一.修改ShiroDbRealm类,实现它的doGetAuthorizationInfo方法 packag ...