Scroll to navigation

std::chrono::from_stream(std::chrono::local_time)(3) C++ Standard Libary std::chrono::from_stream(std::chrono::local_time)(3)

NAME

std::chrono::from_stream(std::chrono::local_time) - std::chrono::from_stream(std::chrono::local_time)

Synopsis


template< class CharT, class Traits, class Duration, class Alloc =
std::allocator<CharT> >


std::basic_istream<CharT, Traits>&
from_stream( std::basic_istream<CharT, Traits>& is, const CharT*
fmt, (since C++20)
std::chrono::local_time<Duration>& tp,
std::basic_string<CharT, Traits, Alloc>* abbrev =
nullptr,


std::chrono::minutes* offset = nullptr );


Attempts to parse the input stream is into the time point tp according to the format
string fmt.


Behaves as an UnformattedInputFunction, except that it has an unspecified effect on
is.gcount(). After constructing and checking the sentry object, attempts to parse
the input stream is into tp according to the format string fmt. If the parse fails
to decode a valid time point, is.setstate(std::ios_base::failbit) is called and tp
is not modified.


If the format specifier %Z is used and successfully parsed, the parsed value is
assigned to *abbrev if abbrev is not null. If the format specifier %z or a modified
variant is used and successfully parsed, the parsed value is assigned to *offset if
offset is not null.

Parameters


is - an input stream
fmt - a format string (see below)
tp - time point object to hold the parse result
abbrev - if not null, pointer to an object that will hold the time zone abbreviation
or name corresponding to the %Z specifier
offset - if not null, pointer to an object that will hold the offset from UTC
corresponding to the %z specifier


Format string


The format string consists of zero or more conversion specifiers and ordinary
characters. Each ordinary character, excluding whitespace characters and the
terminating null character, matches one identical character from the input stream,
or causes the function to fail if the next character on the stream does not compare
equal.


Each whitespace character matches zero or more whitespace characters in the input
stream.


Each unmodified conversion specifier begins with a % character followed by a
character that determines the behavior of the specifier. Some conversion specifiers
have a modified form in which an E or O modifier character is inserted after the %
character. Some conversion specifiers have a modified form in which a width
parameter given as a positive decimal integer (shown as N below) is inserted after
the % character. Each conversion specifier causes the matched characters to be
interpreted as parts of date and time types according to the table below.


A character sequence in the format string that begins with a % but does not match
one of the conversion specifiers below is interpreted as ordinary characters.


If from_stream fails to parse everything specified by the format string, or if
insufficient information is parsed to specify a complete result, or if parsing
discloses contradictory information, is.setstate(std::ios_base::failbit) is called.


The following conversion specifiers are available:


Conversion Explanation
specifier
%% Matches a literal % character.
%n Matches one whitespace character.
%t Matches zero or one whitespace character.
Year
Parses the century as a decimal number. The width N specifies the
%C maximum number of characters to read. The default width is 2. Leading
%NC zeroes are permitted but not required.
%EC
The modified command %EC interprets the locale's alternative
representation of the century.
Parses the last two decimal digits of the year. If the century is not
otherwise specified (e.g. with %C), values in the range [69, 99] are
%y presumed to refer to the years 1969 to 1999, and values in the range
%Ny [00, 68] are presumed to refer to the years 2000 to 2068. The width N
%Ey specifies the maximum number of characters to read. The default width is
%Oy 2. Leading zeroes are permitted but not required.


The modified commands %Ey and %Oy interpret the locale's alternative
representation.
Parses the year as a decimal number. The width N specifies the maximum
%Y number of characters to read. The default width is 4. Leading zeroes are
%NY permitted but not required.
%EY
The modified command %EY interprets the locale's alternative
representation.
Month
%b
%B Parses the locale's full or abbreviated case-insensitive month name.
%h
Parses the month as a decimal number (January is 1). The width N
%m specifies the maximum number of characters to read. The default width is
%Nm 2. Leading zeroes are permitted but not required.
%Om
The modified command %Om interprets the locale's alternative
representation.
Day
%d Parses the day of month as a decimal number. The width N specifies the
%Nd maximum number of characters to read. The default width is 2. Leading
%Od zeroes are permitted but not required.
%e
%Ne The modified commands %Od and %Oe interpret the locale's alternative
%Oe representation.
Day of the week
%a Parses the locale's full or abbreviated case-insensitive weekday name.
%A
%u Parses the ISO weekday as a decimal number (1-7), where Monday is 1. The
%Nu width N specifies the maximum number of characters to read. The default
width is 1. Leading zeroes are permitted but not required.
Parses the weekday as a decimal number (0-6), where Sunday is 0. The
%w width N specifies the maximum number of characters to read. The default
%Nw width is 1. Leading zeroes are permitted but not required.
%Ow
The modified command %Ow interprets the locale's alternative
representation.
ISO 8601 week-based year
In ISO 8601 weeks begin with Monday and the first week of the year must satisfy the
following requirements:


* Includes January 4
* Includes first Thursday of the year
%g Parses the last two decimal digits of the ISO 8601 week-based year. The
%Ng width N specifies the maximum number of characters to read. The default
width is 2. Leading zeroes are permitted but not required.
%G Parses the ISO 8601 week-based year as a decimal number. The width N
%NG specifies the maximum number of characters to read. The default width is
4. Leading zeroes are permitted but not required.
%V Parses the ISO 8601 week of the year as a decimal number. The width N
%NV specifies the maximum number of characters to read. The default width is
2. Leading zeroes are permitted but not required.
Week/day of the year
%j Parses the day of the year as a decimal number (January 1 is 1). The
%Nj width N specifies the maximum number of characters to read. The default
width is 3. Leading zeroes are permitted but not required.
Parses the week number of the year as a decimal number. The first Sunday
of the year is the first day of week 01. Days of the same year prior to
%U that are in week 00. The width N specifies the maximum number of
%NU characters to read. The default width is 2. Leading zeroes are permitted
%OU but not required.


The modified command %OU interprets the locale's alternative
representation.
Parses the week number of the year as a decimal number. The first Monday
of the year is the first day of week 01. Days of the same year prior to
%W that are in week 00. The width N specifies the maximum number of
%NW characters to read. The default width is 2. Leading zeroes are permitted
%OW but not required.


The modified command %OW interprets the locale's alternative
representation.
Date
%D Equivalent to "%m/%d/%y".
%F Equivalent to "%Y-%m-%d". If the width is specified, it is only applied
%NF to the %Y.
Parses the locale's date representation.
%x
%Ex The modified command %Ex interprets the locale's alternate date
representation.
Time of day
Parses the hour (24-hour clock) as a decimal number. The width N
%H specifies the maximum number of characters to read. The default width is
%NH 2. Leading zeroes are permitted but not required.
%OH
The modified command %OH interprets the locale's alternative
representation.
Parses the hour (12-hour clock) as a decimal number. The width N
%I specifies the maximum number of characters to read. The default width is
%NI 2. Leading zeroes are permitted but not required.
%OI
The modified command %OI interprets the locale's alternative
representation.
Parses the minute as a decimal number. The width N specifies the maximum
%M number of characters to read. The default width is 2. Leading zeroes are
%NM permitted but not required.
%OM
The modified command %OM interprets the locale's alternative
representation.
Parses the second as a decimal number. The width N specifies the maximum
number of characters to read. The default width is 2 if Duration is
convertible to std::chrono::seconds, otherwise it is determined by the
%S decimal precision of Duration and the field is interpreted as a long
%NS double in a fixed format, with the decimal point character determined by
%OS the locale (if encountered). Leading zeroes are permitted but not
required.


The modified command %OS interprets the locale's alternative
representation.
%p Parses the locale's equivalent of the AM/PM designations associated with
a 12-hour clock.
%R Equivalent to "%H:%M".
%T Equivalent to "%H:%M:%S".
%r Parses the locale's 12-hour clock time.
Parses the locale's time representation.
%X
%EX The modified command %EX interprets the locale's alternate time
representation.

Miscellaneous


Parses the locale's date and time representation.
%c
%Ec The modified command %Ec interprets the locale's alternative date and
time representation.
Parses the offset from UTC in the format [+|-]hh[mm]. For example -0430
refers to 4 hours 30 minutes behind UTC and 04 refers to 4 hours ahead
%z of UTC.
%Ez
%Oz The modified commands %Ez and %Oz parses the format [+|-]h[h][:mm]
(i.e., requiring a : between the hours and minutes and making the
leading zero for hour optional).
Parses the time zone abbreviation or name, taken as the longest sequence
%Z of characters that only contains the characters A through Z, a through
z, 0 through 9, -, +, _, and /.

Return value


is

Notes


This overload does not subtract the parsed offset (if any) from the parsed
timestamp, unlike the from_stream overloads for the time_point of other clocks.

Example


This section is incomplete
Reason: no example

See also


parse parses a chrono object from a stream
(C++20) (function template)

Category:


* Todo no example

2024.06.10 http://cppreference.com