Namespaces
Variants

std::chrono:: from_stream (std::chrono::year)

From cppreference.net

Определено в заголовочном файле <chrono>
template < class CharT, class Traits, class Alloc = std:: allocator < CharT > >

std:: basic_istream < CharT, Traits > &
from_stream ( std:: basic_istream < CharT, Traits > & is, const CharT * fmt,
std:: chrono :: year & y,
std:: basic_string < CharT, Traits, Alloc > * abbrev = nullptr,

std:: chrono :: minutes * offset = nullptr ) ;
(начиная с C++20)

Пытается разобрать входной поток is в объект std::chrono::year y в соответствии со строкой формата fmt .

Ведёт себя как UnformattedInputFunction , за исключением того, что оказывает неопределённое влияние на is. gcount ( ) . После создания и проверки сторожевого объекта предпринимает попытку разобрать входной поток is в y в соответствии со строкой формата fmt . Если разбор не может декодировать корректный year , is. setstate ( std:: ios_base :: failbit ) вызывается, и y не изменяется.

Если спецификатор формата %Z используется и успешно разбирается, разобранное значение присваивается * abbrev , если abbrev не является нулевым. Если спецификатор формата %z или его модифицированный вариант используется и успешно разбирается, разобранное значение присваивается * offset , если offset не является нулевым.

Содержание

Параметры

is - входной поток
fmt - строка формата (см. ниже)
y - объект для хранения результата парсинга
abbrev - если не null, указатель на объект, который будет содержать аббревиатуру или название часового пояса, соответствующие спецификатору %Z
offset - если не null, указатель на объект, который будет содержать смещение от UTC, соответствующее спецификатору %z

Строка формата

Строка формата состоит из нуля или более спецификаторов преобразования и обычных символов. Каждый обычный символ, за исключением пробельных символов и завершающего нулевого символа, соответствует одному идентичному символу из входного потока или вызывает сбой функции, если следующий символ в потоке не совпадает.

Каждый пробельный символ соответствует нулю или более пробельным символам во входном потоке.

Каждый немодифицированный спецификатор преобразования начинается с символа % , за которым следует символ, определяющий поведение спецификатора. Некоторые спецификаторы преобразования имеют модифицированную форму, в которой модифицирующий символ E или O вставляется после символа % . Некоторые спецификаторы преобразования имеют модифицированную форму, в которой параметр ширины, заданный в виде положительного десятичного целого числа (обозначенного как N ниже), вставляется после символа % . Каждый спецификатор преобразования приводит к интерпретации соответствующих символов как частей типов даты и времени в соответствии с приведенной ниже таблицей.

Последовательность символов в строке формата, которая начинается с % , но не соответствует ни одному из спецификаторов преобразования ниже, интерпретируется как обычные символы.

Если from_stream не удается разобрать все, указанное строкой формата, или если разобрано недостаточно информации для определения полного результата, или если при разборе выявлена противоречивая информация, is. setstate ( std:: ios_base :: failbit ) вызывается.

Доступны следующие спецификаторы преобразования:

Спецификатор
преобразования
Объяснение
%% Соответствует символу % в буквальном значении.
%n Соответствует одному пробельному символу.
%t Соответствует нулю или одному пробельному символу.
Год
%C
% N C
%EC
Анализирует век как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %EC интерпретирует альтернативное представление века в локали.

%y
% N y
%Ey
%Oy
Анализирует последние две десятичные цифры года. Если век не указан иным образом (например, с помощью %C), значения в диапазоне [69, 99] считаются относящимися к годам с 1969 по 1999, а значения в диапазоне [00, 68] считаются относящимися к годам с 2000 по 2068. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированные команды %Ey и %Oy интерпретируют альтернативное представление локали.

%Y
% N Y
%EY
Разбирает год как десятичное число. Ширина N определяет максимальное количество считываемых символов. Ширина по умолчанию составляет 4. Ведущие нули допускаются, но не обязательны.

Модифицированная команда %EY интерпретирует альтернативное представление локали.

Месяц
%b
%B
%h
Разбирает полное или сокращённое название месяца в локали без учёта регистра.
%m
% N m
%Om
Преобразует месяц в десятичное число (январь - это 1 ). Ширина N определяет максимальное количество считываемых символов. Ширина по умолчанию равна 2. Ведущие нули допускаются, но не обязательны.

Модифицированная команда %Om интерпретирует альтернативное представление локали.

День
%d
% N d
%Od
%e
% N e
%Oe
Преобразует день месяца в десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированные команды %Od и %Oe интерпретируют альтернативное представление локали.

День недели
%a
%A
Разбирает полное или сокращенное название дня недели в локали без учета регистра.
%u
% N u
Анализирует номер дня недели по ISO в виде десятичного числа (1-7), где понедельник соответствует 1 . Ширина N задает максимальное количество считываемых символов. Ширина по умолчанию равна 1. Ведущие нули допускаются, но не обязательны.
%w
% N w
%Ow
Преобразует день недели в десятичное число (0-6), где воскресенье соответствует 0 . Ширина N определяет максимальное количество считываемых символов. Ширина по умолчанию равна 1. Ведущие нули допускаются, но не обязательны.

Модифицированная команда %Ow интерпретирует альтернативное представление локали.

ISO 8601 недельный год

В стандарте ISO 8601 недели начинаются с понедельника, и первая неделя года должна удовлетворять следующим требованиям:

  • Включает 4 января
  • Включает первый четверг года
%g
% N g
Анализирует последние две десятичные цифры года по системе недель ISO 8601. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию составляет 2. Ведущие нули разрешены, но не обязательны.
%G
% N G
Анализирует год на основе недель по стандарту ISO 8601 как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию составляет 4. Ведущие нули разрешены, но не обязательны.
%V
% N V
Парсит неделю года по стандарту ISO 8601 как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию составляет 2. Ведущие нули разрешены, но не обязательны.
Неделя/день года
%j
% N j
Анализирует день года в виде десятичного числа (1 января - это 1 ). Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 3. Ведущие нули разрешены, но не обязательны.
%U
% N U
%OU
Парсит номер недели года как десятичное число. Первое воскресенье года является первым днем недели 01. Дни того же года до этого относятся к неделе 00. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %OU интерпретирует альтернативное представление локали.

%W
% N W
%OW
Преобразует номер недели года в десятичное число. Первый понедельник года является первым днём недели 01. Дни того же года до этого относятся к неделе 00. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули допускаются, но не обязательны.

Модифицированная команда %OW интерпретирует альтернативное представление локали.

Дата
%D Эквивалентно "%m/%d/%y" .
%F
% N F
Эквивалентно "%Y-%m-%d" . Если указана ширина, она применяется только к %Y .
%x
%Ex
Анализирует представление даты в текущей локали.

Модифицированная команда %Ex интерпретирует альтернативное представление даты в локали.

Время суток
%H
% N H
%OH
Анализирует час (24-часовой формат) как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию составляет 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %OH интерпретирует альтернативное представление локали.

%I
% N I
%OI
Анализирует час (12-часовой формат) как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %OI интерпретирует альтернативное представление локали.

%M
% N M
%OM
Разбирает минуты как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию равна 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %OM интерпретирует альтернативное представление локали.

%S
% N S
%OS
Парсит секунды как десятичное число. Ширина N определяет максимальное количество символов для чтения. Ширина по умолчанию составляет 2. Ведущие нули разрешены, но не обязательны.

Модифицированная команда %OS интерпретирует альтернативное представление локали.

%p Анализирует локальные эквиваленты обозначений AM/PM, связанных с 12-часовым форматом времени.
%R Эквивалентно "%H:%M" .
%T Эквивалентно "%H:%M:%S" .
%r Анализирует 12-часовой формат времени в локали.
%X
%EX
Анализирует представление времени в локали.

Модифицированная команда %EX интерпретирует альтернативное представление времени в локали.

Разное
%c
%Ec
Анализирует представление даты и времени локали.

Модифицированная команда %Ec интерпретирует альтернативное представление даты и времени локали.

%z
%Ez
%Oz
Анализирует смещение от UTC в формате [+|-]hh[mm] . Например, -0430 означает 4 часа 30 минут позади UTC, а 04 означает 4 часа впереди UTC.

Модифицированные команды %Ez и %Oz анализируют формат [+|-]h[h][:mm] (т.е. требуют двоеточие : между часами и минутами и делают ведущий ноль для часов опциональным).

%Z Анализирует аббревиатуру или название часового пояса, принимая самую длинную последовательность символов, содержащую только символы A через Z , a через z , 0 через 9 , - , + , _ , и / .

Возвращаемое значение

is

Смотрите также

(C++20)
парсит chrono объект из потока
(шаблон функции)