Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template format_date_parser

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Library Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template format_date_parser

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> 
class format_date_parser {
public:
  // types
  typedef std::basic_string< charT >                string_type;          
  typedef std::basic_istringstream< charT >         stringstream_type;    
  typedef std::istreambuf_iterator< charT >         stream_itr_type;      
  typedef string_type::const_iterator               const_itr;            
  typedef date_type::year_type                      year_type;            
  typedef date_type::month_type                     month_type;           
  typedef date_type::day_type                       day_type;             
  typedef date_type::duration_type                  duration_type;        
  typedef date_type::day_of_week_type               day_of_week_type;     
  typedef date_type::day_of_year_type               day_of_year_type;     
  typedef string_parse_tree< charT >                parse_tree_type;      
  typedef parse_tree_type::parse_match_result_type  match_results;        
  typedef std::vector< std::basic_string< charT > > input_collection_type;
  // construct/copy/destruct
  format_date_parser(const string_type &, const input_collection_type &, 
                     const input_collection_type &, 
                     const input_collection_type &, 
                     const input_collection_type &);
  format_date_parser(const string_type &, const std::locale &);
  format_date_parser(const format_date_parser< date_type, charT > &);
  // public member functions
  string_type format() const;
  void format(string_type);
  void short_month_names(const input_collection_type &);
  void long_month_names(const input_collection_type &);
  void short_weekday_names(const input_collection_type &);
  void long_weekday_names(const input_collection_type &);
  date_type parse_date(const string_type &, const string_type &, 
                       const special_values_parser< date_type, charT > &) const;
  date_type parse_date(std::istreambuf_iterator< charT > &, 
                       std::istreambuf_iterator< charT > &, 
                       const special_values_parser< date_type, charT > &) const;
  date_type parse_date(std::istreambuf_iterator< charT > &, 
                       std::istreambuf_iterator< charT > &, string_type, 
                       const special_values_parser< date_type, charT > &) const;
  month_type parse_month(std::istreambuf_iterator< charT > &, 
                         std::istreambuf_iterator< charT > &, string_type) const;
  month_type parse_month(std::istreambuf_iterator< charT > &, 
                         std::istreambuf_iterator< charT > &, string_type, 
                         match_results &) const;
  day_type parse_var_day_of_month(std::istreambuf_iterator< charT > &, 
                                  std::istreambuf_iterator< charT > &) const;
  day_type parse_day_of_month(std::istreambuf_iterator< charT > &, 
                              std::istreambuf_iterator< charT > &) const;
  day_of_week_type 
  parse_weekday(std::istreambuf_iterator< charT > &, 
                std::istreambuf_iterator< charT > &, string_type) const;
  day_of_week_type 
  parse_weekday(std::istreambuf_iterator< charT > &, 
                std::istreambuf_iterator< charT > &, string_type, 
                match_results &) const;
  year_type parse_year(std::istreambuf_iterator< charT > &, 
                       std::istreambuf_iterator< charT > &, string_type) const;
  year_type parse_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 public construct/copy/destruct

  1. <
    format_date_parser(conststring_type&format_str,
                      constinput_collection_type&month_short_names,
                      constinput_collection_type&month_long_names,
                      constinput_collection_type&weekday_short_names,
                      constinput_collection_type&weekday_long_names);
    >
  2. <
    format_date_parser(conststring_type&format_str,conststd::locale&locale);
    >
  3. <
    format_date_parser(constformat_date_parser<date_type,charT>&fdp);
    >

format_date_parser public member functions

  1. <
    string_typeformat()const;
    >
  2. <
    voidformat(string_typeformat_str);
    >
  3. <
    voidshort_month_names(constinput_collection_type&month_names);
    >
  4. <
    voidlong_month_names(constinput_collection_type&month_names);
    >
  5. <
    voidshort_weekday_names(constinput_collection_type&weekday_names);
    >
  6. <
    voidlong_weekday_names(constinput_collection_type&weekday_names);
    >
  7. <
    date_typeparse_date(conststring_type&value,
                        conststring_type&format_str,
                        constspecial_values_parser<date_type,charT>&sv_parser)const;
    >
  8. <
    date_typeparse_date(std::istreambuf_iterator<charT>&sitr,
                        std::istreambuf_iterator<charT>&stream_end,
                        constspecial_values_parser<date_type,charT>&sv_parser)const;
    >
  9. date_typeparse_date(std::istreambuf_iterator<charT>&sitr,
                        std::istreambuf_iterator<charT>&stream_end,
                        string_typeformat_str,
                        constspecial_values_parser<date_type,charT>&sv_parser)const;

    Из всех объектов, которые может разобратьformat_date_parser, только дата может быть особым значением. Таким образом, проверка только parse_date для специальных значений.

  10. month_typeparse_month(std::istreambuf_iterator<charT>&sitr,
                          std::istreambuf_iterator<charT>&stream_end,
                          string_typeformat_str)const;
    Бросает плохой_месяц, если не в состоянии разобрать.
  11. <
    month_typeparse_month(std::istreambuf_iterator<charT>&sitr,
                          std::istreambuf_iterator<charT>&stream_end,
                          string_typeformat_str,match_results&mr)const;
    >Бросает плохой месяц, если не в состоянии разобрать.
  12. day_typeparse_var_day_of_month(std::istreambuf_iterator<charT>&sitr,
                                   std::istreambuf_iterator<charT>&stream_end)const;
    Ожидает 1 или 2 цифры 1-31. Бросает плохой день месяца, если не в состоянии разобрать.
  13. <
    day_typeparse_day_of_month(std::istreambuf_iterator<charT>&sitr,
                               std::istreambuf_iterator<charT>&stream_end)const;
    >Ожидает 2 цифры 01-31. Бросает плохой день месяца, если не в состоянии разобрать.
  14. <
    day_of_week_type
    parse_weekday(std::istreambuf_iterator<charT>&sitr,
                 std::istreambuf_iterator<charT>&stream_end,
                 string_typeformat_str)const;
    >
  15. <
    day_of_week_type
    parse_weekday(std::istreambuf_iterator<charT>&sitr,
                 std::istreambuf_iterator<charT>&stream_end,
                 string_typeformat_str,match_results&mr)const;
    >
  16. <
    year_typeparse_year(std::istreambuf_iterator<charT>&sitr,
                        std::istreambuf_iterator<charT>&stream_end,
                        string_typeformat_str)const;
    >Бросает плохой год, если не в состоянии разобрать
  17. year_typeparse_year(std::istreambuf_iterator<charT>&sitr,
                        std::istreambuf_iterator<charT>&stream_end,
                        string_typeformat_str,match_results&mr)const;
    бросает плохой год, если не в состоянии разобрать

PrevUpHomeNext

Статья Class template format_date_parser раздела The Boost C++ Libraries BoostBook Documentation Subset Library Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Library Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:36:50/0.0096487998962402/1