boost::date_time::format_date_parser — Class with generic date parsing using a format string.
Synopsis
// In header: <boost/date_time/format_date_parser.hpp>
template<typename date_type,typename charT>classformat_date_parser{public:// typestypedefstd::basic_string<charT>string_type;typedefstd::basic_istringstream<charT>stringstream_type;typedefstd::istreambuf_iterator<charT>stream_itr_type;typedefstring_type::const_iteratorconst_itr;typedefdate_type::year_typeyear_type;typedefdate_type::month_typemonth_type;typedefdate_type::day_typeday_type;typedefdate_type::duration_typeduration_type;typedefdate_type::day_of_week_typeday_of_week_type;typedefdate_type::day_of_year_typeday_of_year_type;typedefstring_parse_tree<charT>parse_tree_type;typedef parse_tree_type::parse_match_result_type match_results;typedefstd::vector<std::basic_string<charT>>input_collection_type;// construct/copy/destructformat_date_parser(conststring_type&,constinput_collection_type&,constinput_collection_type&,constinput_collection_type&,constinput_collection_type&);format_date_parser(conststring_type&,conststd::locale&);format_date_parser(constformat_date_parser<date_type,charT>&);// public member functionsstring_typeformat()const;voidformat(string_type);voidshort_month_names(constinput_collection_type&);voidlong_month_names(constinput_collection_type&);voidshort_weekday_names(constinput_collection_type&);voidlong_weekday_names(constinput_collection_type&);date_typeparse_date(conststring_type&,conststring_type&,constspecial_values_parser<date_type,charT>&)const;date_typeparse_date(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,constspecial_values_parser<date_type,charT>&)const;date_typeparse_date(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type,constspecial_values_parser<date_type,charT>&)const;month_typeparse_month(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type)const;month_typeparse_month(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type,match_results&)const;day_typeparse_var_day_of_month(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&)const;day_typeparse_day_of_month(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&)const;day_of_week_typeparse_weekday(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type)const;day_of_week_typeparse_weekday(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type,match_results&)const;year_typeparse_year(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type)const;year_typeparse_year(std::istreambuf_iterator<charT>&,std::istreambuf_iterator<charT>&,string_type,match_results&)const;};
Description
Ниже приводится набор признанных спецификаторов формата
a — короткое буднее имя
A - Длинный будний день
b - сокращенное название месяца
B - Полное имя месяца
d - день месяца с десятичным числом 01 по 31
j - день года в виде десятичного числа от 001 до 366
m - название месяца в виде десятичного знака 01-12
U - номер недели от 00 до 53 с первым воскресеньем в качестве первого дня недели 1?
w - будний день как десятичное число от 0 до 6, где воскресенье == 0
W - номер недели от 00 до 53, где понедельник - первый день недели 1
x - представление даты по умолчанию
y - Год без века - например: 04 за 2004
Y - Год с веком
Указатели будней (a и A) не добавляются к дате строительства, но они предоставляют способ пропустить названия будней для форматов, которые их предоставляют.
Todo & #8211; Еще одна интересная особенность, которую может обеспечить этот подход, - это возможность заполнить любые недостающие поля текущими значениями с часов. Поэтому, если у вас есть m-d, парсер обнаружит недостающее значение года и заполнит его с помощью часов.
Todo & #8211; Что делать с х Х в классическом аспекте просто плохо...
Из всех объектов, которые может разобратьformat_date_parser, только дата может быть особым значением. Таким образом, проверка только parse_date для специальных значений.
Статья Class template format_date_parser раздела The Boost C++ Libraries BoostBook Documentation Subset Library Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.