首页 > 代码库 > boost库学习之 date_time库

boost库学习之 date_time库



date_time库是一个全面灵活的日期时间库,提供时间相关的各种所需功能,也是一个比较复杂的库。它支持从1400-01-01到9999-12-31之间的日期计算。使用时包含#include <boost/date_time/gregorian/gregorian.hpp>头文件, 引用boost::gregorian;命名空间。


日期

date是date_time库中的核心类。以天为单位表示时间点。

	date d1;                                       //无效日期
	date d2(2015, 1, 4);
	date d3(d2);                                   //支持拷贝构造

	cout << d2 << endl;                            //重载<<

	if (d2 == d3) {                                //支持比较操作
		cout << "d2 == d3" << endl;
	}

	date d4 = from_string("2015-1-5");             //使用工厂函数from_string()根据字符串构造
	date d5 = from_string("2015/1/5");
	date d6 = from_undelimited_string("20150105"); //与from_string()相比,不需要分隔符


date类成员函数提供了很多日期操作
year()、month()、day()返回日期的年、月、日
day_of_week()返回date是周第几天
day_of_year()返回date是该年第几天
week_number()返回date是该年第几周,范围从0-53,若年初几天位于去年的周,那么即第0周
is_not_a_date()用于检测是否是一个无效日期

	cout << d6.year() <<'-' << d6.month() << '-' << d6.day() << endl; //注意month会是英文月份
	cout << to_iso_string(d6) << endl;                                //日期全为数字输出,例20150105
	cout << to_iso_extended_string(d6) << endl;                       //日期全为数字输出,带'-',如2015-01-05


boost库学习之 date_time库