boost posix_time/time_duration/date 的基本用法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

头文件和命名空间

#include <boost/date_time/posix_time/posix_time.hpp>
using namespace boost::posix_time;
using namespace boost::gregorian; 


构造函数

1.
std::string ts("2002-01-20 23:59:59.000");
ptime t(time_from_string(ts))
boost::posix_time::ptime  time_now ( boost::posix_time::second_clock::local_time() ); //机器的本地时间,比如北京时间,与电脑设置的时区有关
boost::posix_time::ptime  time_now ( boost::posix_time::second_clock::universal_time() );//机器的GMT时间,本地时间加减时区偏移量

2.
std::string ts("20020131T235959");
ptime t(from_iso_string(ts))
3.
ptime p1(date(2012, 11, 30), time_duration(1,2,3,4));


转为字符串
to_simple_string(const boost::posix_time &pt) //"2002-01-20 23:59:59.000"
to_iso_string(const boost::posix_time &pt)  //"20020131T235959"


两个ptime相减得到一个boost::posix_time::time_duration对象
ptime的time_of_day()函数得到一个boost::posix_time::time_duration对象
ptime的date()返回一个boost::gregorian::date对象


time_duration的成员函数
total_microseconds() 将时分秒累计转为微秒
totao_nanoseconds()  将时分秒累计转为纳秒
total_milliseconds() 将时分秒累计转为毫秒
total_seconds()      将时分秒累计转为秒
hours()              返回小时部分
minutes()            返回分钟部分
seconds()            返回秒部分
is_negative()        是否为负值,比如两个ptime对象相减,第一个对象时间早,第二个对象时间晚
is_neg_infinity()    是否达到所能表示的最大负值
is_pos_infinity()    是否达到所能表示的最大正值
is_not_a_date_time() 是否是无效的类型time_duration类型


date的成员函数
date_of_week()返回一个boost::gregorian::grep_weekday对象,即得到该日期是星期几,
可以调用as_short_string()返回星期几的英文前三个字母,as_long_string()返回星期几的完成单词
也可以转为一个数字as_number()返回0-6表示Sun-Mon

date_of_year()返回改日期在一年中是第几天1-365(366)

year_month_day()返回一个类型可以得到年月日格式的日期

    boost::posix_time::ptime tw(boost::posix_time::second_clock::universal_time());
    //vaen_TolCheckm_Www_dd_Mon_yyyy_HH24_MM_SS.qvt
    //vaen_TolPQRm_Www_dd_Mon_yyyy_HH24_MM_SS.qvt
    string name;
    name = (type == CLogger::T_LOG)?"vae0_TolCheck":"vae0_TolPRQ";
    stringstream ss;
    ss<<name<<partitionID<<"_";
    ss<<tw.date().day_of_week().as_short_string()<<"_";
    auto dt = tw.date().year_month_day();
    ss<<dt.day<<"_"<<dt.month<<"_"<<dt.year<<"_";
    
    auto td = tw.time_of_day();
    ss<<td.hours()<<"24_"<<td.minutes()<<"_"<<td.seconds()<<".qvt";



Boost库学习随记二 date_timetime_durationdate_facet、time_facet、timer库示例等: //"Boost_data_Timer.h"头文件 #ifndef BOOST_TEST #define BOOST_DATE_TIME_SOURCE #include #include #include #include #include //#include "boost/date_time/gregorian/conversion.hpp" #include "boost/d 阅读详情

相关推荐

Boost之日期时间处理(date_time库)

概述 使用date_time库需要在编译时加上"-lboost_date_time",而且需要包含以下头文件: 处理日期的组件:#include 处理时间的组件:#include datedatedate_time库处理日期的核心类,使用一个32位的整数作为内部存储,以天为单位表示时间点概念。date也全面支持比较操作和输入输入出,我们可以完全把它当成一个像int、st

optcaelum的博客 1万+

boost::posix_time模块实现本地时间和UTC之间的

其中,boost::posix_time::ptime 可以表示时间点,boost::posix_time::time_duration 可以表示时间跨度,该模块还提供了一些实用的函数,如将时间点换为字符串形式等。由此可见,我们利用 Boost库的 boost::posix_time 模块可以方便地处理本地时间和UTC之间的换,从而便于软件开发人员进行跨时区的开发和调试工作。同样,我们使用UTC时间点加上本地时间与UTC之间的时差,从而得到本地时间点。

BUG?不存在的! 666

C++Boost库学习之Date_time

目录 1.timer库概述   ①命名空间timer   ②计时器类中用到的格式 2.类cpu_timer   ①类定义   ②使用例子 3.类auto_cpu_timer   ①类定义   ②使用例子 1.timer库概述 ^   timer是一个很小的库,提供简易的计时功能,对了解程序执行所需的时间在测试和生产环境中都很有用。...

qq_17044529的博客 2836

BOOST C++ 10 时间数据】(2)本地独立时间

boost::posix_time::ptime 类定义了一个与位置无关的时间。它使用 boost::gregorian::date 类型,但也存储时间。要使用 boost::posix_time::ptime,请包含头文件 boost/date_time/posix_time/posix_time.hpp。

gongdiwudu的专栏 5454

Boost 库之时间点和时间间隔(posix_time

时间点由日期和时间组成,可以精确到纳秒级别,提供了丰富的运算符重载和方法,方便进行时间计算、比较和格式化等操作。上述代码中,我们分别使用 hours()、minutes() 和 seconds() 方法获取了时间间隔对象的小时、分钟和秒,并将结果赋值给了 hours、minutes 和 seconds 变量。上述代码中,我们分别使用 date()、time_of_day() 和 zone() 方法获取了时间点对象的日期、时间和时区信息,并将其分别赋值给了 datetime 和 zone 变量。

GwtbPerl的博客 437

boost时间处理

date_time库的时间功能位于名字空间boost::posix_time,它提供了微妙级别(最高可达纳秒)的时间系统,使用需要包含头文件"boost\date_time\posix_time\posix_time.hpp"。 1、时间长度类time_duration 类似日期长度类date_duration有days、weeks、months、years这些常用类,time_duration也...

qq_23350817的博客 2974

boost::posix_time 时间处理

1.当前起始时间(microsec微秒级别) boost::posix_time::ptime start_time = boost::posix_time::microsec_clock::local_time(); 2.当前结束时间 boost::posix_time::ptime end_time = boost::posix_time::microsec_clock::local_time...

benben211的博客 4829

boost/date_time/posix_time及chrono库高精度计时详细总结

本文主要介绍了及时器相关的time_durationptimetime_period、ticks、microsec_clock::local_time()、not_a_date_time、等的用法总结。

zxy_ZXY123的博客 1321

Boost::date_time时间的处理

1、date_time库提供微秒级别时间处理.如果需要,如果在#include <boost/date_time/posix_time/posix_time.hpp>之前定义宏:BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG,则最高可达到纳秒级别的精确度。 2、time_duration的子类:hours、minutes、seconds、millisec/...

小米的修行之路 685

2.7 Boosttime_duration类表示时间长度

Boost库中的date_time模块提供了精确的时间处理功能,支持微秒级精度(可扩展至纳秒级)。核心类time_duration用于表示时间长度,支持时、分、秒及更小时间单位的计算和换。通过子类hours/minutes/seconds等可直观创建时间量,并支持比较运算和四则运算。时间值可正可负,支持特殊值(如无限值)处理。通过宏定义可切换微秒/纳秒精度,配套函数提供时间格式换和精度检测功能。该库特别适合需要高精度时间计算的场景,其设计兼顾了灵活性和易用性,使开发者能方便地处理各种时间操作需求。

weixin_44863825的博客 765

boost准模板库time_duration类的使用

# define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG #define BOOST_ALL_NO_LIB #include #include using namespace std; using namespace boost::posix_time; int main() { time_duration td(1,10,20,1000);//定义一个时

onlysingleboy的专栏 1997

Boost开发指南-2.4posix_time

从概念上来说,(广义的)时间是日期的进一步细化,相当于在日期“天”的量级下增加了时分秒的分辨率,因此,我们首先介绍时间长度time_duration类,它表述了时分秒的度量,然后再介绍时间点ptime 类。date_time 库在格里高利历的基础上提供徼秒级别的时间系统,但如果需要,它最高可以达到纳秒级别的精确度。

qq_36314864的博客 665

boost完全开发指南第2章-处理时间 6 (time_duration时间长度的使用)

1、使用time_duration类需要声明#include using namespace boost::posix_time; 一般都是精确到微秒级,但是 ,如果在以上声明前定义宏BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG,可以精确到纳秒级。 2、time_duration的子类有:hours、minutes、seconds、millisec/millis

学习,思考,记录 4013

boost准模板库time_duration类的使用(续)

#define BOOST_ALL_NO_LIB #define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG //启用纳秒级别的精确度 //#define BOOST_DATE_TIME_SOURSE #include #include using namespace boost::posix_time; using namespace std; int mai

onlysingleboy的专栏 1632

Boostdate_time

Boost.Date_Time库是一个功能丰富的时间日期处理库,它提供了多种用于日期和时间计算、格式化、换和输入输出的功能。

qq_33271629的博客 604

boostdate_time库——处理时间

date_time 库在格里高利历的基础上提供微秒级别的时间系统,如果需要,它最高可以达到纳秒级别的精度。 一、时间长度 表示时间长度的类是 time_duration,它可以表示包括时、分、秒、毫秒的时间长度。 它还有几个子类,表示不同的时间长度单位: #include <boost/date_time/posix_time/posix_time.hpp> using namespace boost::posix_time; int main() { time_durati

友善啊,朋友的博客 888

Boost库基础-时间

posix_timedate_time库在格里高利历的基础上提供微秒级别的时间系统,但如果需要,它最高可以达到纳秒级别的精确度。 用它需要包含以下头文件 #include <boost/date_time/posix_time/posix_time.hpp> using namespace boost::posix_time; 1.时间长度 与日期长度date_du...

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 1831

时间3 boost::time_duration/ptime

// 忽略警告 // 调试日期:2019-03-14 星期4 #define BOOST_DATE_TIME_POSIX_TIME_SET_CONFIG// 让time_duration精确到纳秒(Linux下) //#define BOOST_DATE_TIME_SOURCE #define _SCL_SECURE_NO_WARNINGS #pragma warning(disable : 4...

weixin_38850997的博客 778

boost库之date

1.date// date_Exam.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #define BOOST_DATE_TIME_SOURCE #include "libs/date_time/src/gregorian/greg_names.hpp" #

一步一步 3025
上一篇: Qt VS2010 编译static版本
下一篇: BOOST_FOREACH
hongjunbj
博客等级 码龄21年 5粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值