25 Localization library [localization]

25.4 Standard locale categories [locale.categories]

25.4.5 The time category [category.time]

25.4.5.1 Class template time_­get [locale.time.get]

25.4.5.1.2 time_­get virtual functions [locale.time.get.virtuals]

dateorder do_date_order() const;

Returns: Значение перечисления, указывающее предпочтительный порядок компонентов для тех форматов даты, которые состоят из дня, месяца и года.244 Возвращает, no_­order если формат даты, заданный параметром, 'x' содержит другие переменные компоненты (например, день по юлианскому календарю, номер недели, день недели).

iter_type do_get_time(iter_type s, iter_type end, ios_base& str, ios_base::iostate& err, tm* t) const;

Effects: Читает символы, начиная с, s пока он не извлечет эти struct tm элементы, и оставшиеся символы формата, используемые time_­put<>​::​put для создания формата, указанного в "%H:%M:%S", или до тех пор, пока он не обнаружит ошибку или конец последовательности.

Returns: Итератор, указывающий сразу за последним символом, который может быть признан частью допустимого времени.

iter_type do_get_date(iter_type s, iter_type end, ios_base& str, ios_base::iostate& err, tm* t) const;

Effects: Считывает символы, начинающиеся с, s до тех пор, пока не будут извлечены эти struct tm элементы и оставшиеся символы формата, используемые time_­put<>​::​put для создания одного из следующих форматов, или пока не возникнет ошибка. Формат зависит от значения, возвращаемого, date_­order() как показано в таблице 80.

Таблица 80 - do_­get_­date эффекты
date_­order()Формат
no_­order "%m%d%y"
dmy "%d%m%y"
mdy "%m%d%y"
ymd "%y%m%d"
ydm "%y%d%m"

Реализация также может принимать дополнительные форматы, определяемые реализацией.

Returns: Итератор, указывающий сразу за последним символом, который может быть признан частью допустимой даты.

iter_type do_get_weekday(iter_type s, iter_type end, ios_base& str, ios_base::iostate& err, tm* t) const; iter_type do_get_monthname(iter_type s, iter_type end, ios_base& str, ios_base::iostate& err, tm* t) const;

Effects: Читает символы, начинающиеся с, s пока не будет извлечено (возможно, сокращенное) название дня недели или месяца. Если он находит сокращение, за которым следуют символы, которые могут соответствовать полному имени, он продолжает чтение, пока не совпадет с полным именем или не завершится ошибкой. Соответственно, он устанавливает соответствующий struct tm член.

Returns: Итератор, указывающий сразу за последним символом, распознанным как часть допустимого имени.

iter_type do_get_year(iter_type s, iter_type end, ios_base& str, ios_base::iostate& err, tm* t) const;

Effects: Считывает символы, начиная с, s пока не будет извлечен однозначный идентификатор года. Это определяется реализацией, принимаются ли двузначные номера года, и (если да), в каком веке они, как предполагается, лежат. Устанавливает t->tm_­year член соответствующим образом.

Returns: Итератор, указывающий сразу за последним символом, распознанным как часть допустимого идентификатора года.

iter_type do_get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t, char format, char modifier) const;

Requires: t указывает на объект.

Effects: Функция начинается с оценки err = ios_­base​::​goodbit. Затем он считывает символы , начиная с s до тех пор, пока не обнаружит ошибку, или до тех пор, пока не добыл и назначены те struct tm члены, и все оставшиеся символы формата, соответствующий директиве преобразования , подходящей для 9945 функции ISO / IEC strptime, формируется путем конкатенации '%', на modifier характер, когда не NUL, и format персонаж. Когда конкатенация не дает полной допустимой директивы, функция оставляет объект, на который указывает t без изменений, и выполняет оценку err |= ios_­base​::​failbit. Когда s == end оценивается true после чтения символа, функция оценивает err |= ios_­base​::​eofbit.

Для сложных директив преобразования , такие как %c, %x, или %X, или директив , которые включают дополнительные модификаторы E или O, когда функция не может однозначно определить некоторые или все struct tm элементы из входной последовательности [s, end), он оценивает err |= ios_­base​::​eofbit. В таких случаях значения этих struct tm элементов не указаны и могут выходить за пределы допустимого диапазона.

Remarks: Не указано, будут ли многократные вызовы do_­get() с адресом одного и того же struct tm объекта обновлять текущее содержимое объекта или просто перезаписывать его элементы. Переносимые программы должны обнулить объект перед вызовом функции.

Returns: Итератор, указывающий сразу за последним символом, который, возможно, распознается как часть допустимой входной последовательности для заданных format и modifier.

Эта функция предназначена только для удобства, для распространенных форматов и может возвращаться no_­order в допустимых региональных стандартах.