利用boost获取时间并格式化

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

1. 输出YYYYMMDD

[cpp] view plaincopy

  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;

[cpp] view plaincopy

  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

[cpp] view plaincopy

  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;

[cpp] view plaincopy

  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里计算时间间隔的功能很多很强大,我列举的仅仅是我目前用到的。

[cpp] view plaincopy

  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();

[cpp] view plaincopy

  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. // 得到两个时间间隔的秒
时间: 2024-11-05 11:04:14

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

获取时间以及格式化--今天、昨天和明天

1. 获取今天 /*! * @brief 获取今天 */ // 1. 获取当前系统的准确事件(+8小时) NSDate *date = [NSDate date]; // 获得时间对象 NSTimeZone *zone = [NSTimeZone systemTimeZone]; // 获得系统的时区 NSTimeInterval time = [zone secondsFromGMTForDate:date];// 以秒为单位返回当前时间与系统格林尼治时间的差 NSDate *dateNow

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

package com.example.administrator.filemanager.utils; import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date; /** * Created by Administrator on 2016/12/29. */ public class CommonUtils {    //DecimalFormat:用于格式化十进制的数字   

python 下获取系统时间并格式化输出

python下面有两个时间的模块,time和datetime,当然在使用的时候都需要先import. 获得系统当前时间time.localtime(time.time()) 时间的格式化输出可以使用time下的strftime,调用为time.strftime() 例子为current_time=time.strftime('%Y-%m-%d',time.localtime(time.time())) 输出的时间格式为2015-02-11,这个输出是一个string类型的数据 还有datatim

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

java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有两种 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 获取系统当前时间 * @descrition 使用Calendar实现 * @param format * @return */ public String getSysdat

node - 获取当前时间并格式化

1,安装 moment模块 cnpm i moment --save 2,引入 var moment = require('moment'); 3,获取当前时间并格式化 var current_time =  moment(Date.now()).format('YYYY-MM-DD HH:mm:ss') console.log(current_time) 原文地址:https://www.cnblogs.com/500m/p/11553079.html

C/C++利用Boost::Asio网络库建立自己的Socket服务器

引言 寸光阴,当下我们或许更需要利用现有的知识,应用现有的技术.网络是当前互联网的根本,了解网络便开始显得极其重要.今天我们利用Boost库中Asio部分,浅尝网络服务器.此处不做过于深入的开展,为达成学习目的,只做简单的异步并发服务器. 注意:本篇代码没有直接引用boost等命名空间,为的是新入门Boost的同学能够更好的了解每个参数在boost的具体命名空间位置,有助于更好的理解boost的布局. 版权所有:_OE_,转载请注明出处:http://blog.csdn.net/csnd_ayo

mysql 获取当前日期及格式化

MYSQL 获取当前日期及日期格式获取系统日期: NOW()格式化日期: DATE_FORMAT(date, format)注: date:时间字段format:日期格式 返回系统日期,输出 2009-12-25 14:38:59select now();输出 09-12-25select date_format(now(),'%y-%m-%d'); 根据format字符串格式化date值: %S, %s 两位数字形式的秒( 00,01, ..., 59)%I, %i 两位数字形式的分( 00,

android 获取时间

首先,先说下java下可以正常使用的方法: 1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 import java.util.Locale; 6 7 public class GetDate { 8 9 /** 10 * @param args 11 */ 12 public static void

使用PHP获取时间今天 明天 昨天 时间戳的详解

使用php获取时间今天明天昨天时间戳 2013-06-20 11:12 <?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"; echo "明天:".date("Y-m-d&quo