std::chrono::from_stream (std::chrono::file_time)
template<class CharT, class Traits, class Duration, class Alloc =std::allocator<CharT>> std::basic_istream<CharT, Traits>& | (desde C++20) | |
Intenta analizar el flujo de entrada is
en el punto de tiempo tp
según la cadena de formato fmt
.
Se comporta como UnformattedInputFunction, excepto que tiene un efecto no especificado en is.gcount(). Después de construir y verificar el objeto centinela, intenta analizar el flujo de entrada is
en tp
según la cadena de formato fmt
. Si el análisis no logra decodificar un punto de tiempo válido, se llama a is.setstate(std::ios_base::failbit) y tp
no se modifica.
Si se usa el especificador de formato %Z
y se analiza correctamente, el valor analizado se asigna a *abbrev si abbrev
no es nulo. Si se utiliza el especificador de formato %z
o una variante modificada y se analiza correctamente, el valor analizado se asigna a *offset si offset
no es nulo{{# ifeq:file_time|local_time||, y el desplazamiento analizado se restará de la marca de tiempo analizada antes de que la diferencia se asigne a tp
}}.
Contenido |
[editar]Parámetros
is | - | Un flujo de entrada. |
fmt | - | Una cadena de formato (ver abajo). |
tp | - | Objeto de punto de tiempo para contener el resultado del análisis. |
abbrev | - | Si no es nulo, puntero a un objeto que contendrá la abreviatura de la zona horaria o el nombre correspondiente al especificador %Z . |
offset | - | Si no es nulo, puntero a un objeto que contendrá el desplazamiento de UTC correspondiente al especificador %z . |
[editar]Cadena de formato
La cadena de formato consta de cero o más especificadores de conversión y caracteres ordinarios. Cada carácter ordinario, excepto los espacios en blanco y el carácter nulo de terminación, coincide con un carácter idéntico del flujo de entrada o hace que la función falle si el siguiente carácter en el flujo no se compara igual.
Cada carácter de espacio en blanco coincide con cero o más caracteres de espacio en blanco en el flujo de entrada.
Cada especificador de conversión sin modificar comienza con un carácter %
seguido de un carácter que determina el comportamiento del especificador. Algunos especificadores de conversión tienen una forma modificada en la que se inserta un carácter modificador E
u O
después del carácter %
. Algunos especificadores de conversión tienen una forma modificada en la que se da un parámetro ancho como un entero decimal positivo (que se muestra como N
a continuación) se inserta después del carácter %
. Cada especificador de conversión hace que los caracteres coincidentes se interpreten como partes de los tipos de fecha y hora según la tabla siguiente.
Una secuencia de caracteres en la cadena de formato que comienza con %
pero que no coincide con uno de los especificadores de conversión a continuación se interpreta como caracteres normales.
Si from_stream
no puede analizar todo lo especificado por la cadena de formato, o si no se analiza información suficiente para especificar un resultado completo, o si el análisis revela información contradictoria, se llama a is.setstate(std::ios_base::failbit).
Los siguientes especificadores de conversión están disponibles:
Especificador de conversión | Explicación | |
---|---|---|
%% | Coincide con un literal de carácter % . | |
%n | Coincide con un carácter de espacio en blanco. | |
%t | Coincide con cero o un carácter de espacio en blanco. | |
Año | ||
%C %NC %EC | Analiza el siglo como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%y %Ny %Ey %Oy | Analiza los dos últimos dígitos decimales del año. Si el siglo no se especifica de otra manera (por ejemplo, con %C), se supone que los valores en el rango [69, 99] se refieren a los años 1969 a 1999, y los valores en el rango [00, 68] se supone que se refieren a los años 2000 a 2068. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. Los comandos modificados | |
%Y %NY %EY | Analiza el año como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 4. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
Mes | ||
%b %B %h | Analiza el nombre del mes completo o abreviado de la configuración regional, sin distinguir entre mayúsculas y minúsculas. | |
%m %Nm %Om | Analiza el mes como un número decimal (enero es 1 ). El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
Día | ||
%d %Nd %Od %e %Ne %Oe | Analiza el mes del mes como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. Los comandos modificados | |
Día de la semana | ||
%a %A | Analiza el nombre completo o abreviado del día de la semana sin distinción de mayúsculas y minúsculas de la configuración regional. | |
%u %Nu | Analiza el día de la semana ISO como un número decimal (1-7), donde el lunes es 1 . El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 1. Los ceros iniciales están permitidos pero no son obligatorios. | |
%w %Nw %Ow | Analiza el día de la semana como un número decimal (0-6), donde el domingo es 0 . El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 1. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
Año basado en semanas ISO 8601 | ||
En ISO 8601 las semanas comienzan con el lunes y la primera semana del año debe cumplir los siguientes requisitos:
| ||
%g %Ng | Analiza los dos últimos dígitos decimales del año basado en semanas ISO 8601. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. | |
%G %NG | Analiza el año ISO 8601 basado en semanas como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 4. Los ceros iniciales están permitidos pero no son obligatorios. | |
%V %NV | Analiza la semana del año ISO 8601 como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. | |
Semana/día del año | ||
%j %Nj | Analiza el día del año como un número decimal (January 1 is 1 ). El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 3. Los ceros iniciales están permitidos pero no son obligatorios. | |
%U %NU %OU | Analiza el número de semana del año como un número decimal. El primer domingo del año es el primer día de la semana 01. Los días del mismo año anteriores al primer domingo están en la semana 00. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%W %NW %OW | Analiza el número de semana del año como un número decimal. El primer lunes del año es el primer día de la semana 01. Los días del mismo año anteriores al primer lunes están en la semana 00. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
Fecha | ||
%D | Equivalente a "%m/%d/%y" . | |
%F %NF | Equivalente a "%Y-%m-%d" . Si se especifica el ancho, solo se aplica a %Y . | |
%x %Ex | Analiza la representación de fecha de la configuración regional. El comando modificado | |
Hora del día | ||
%H %NH %OH | Analiza la hora (reloj de 24 horas) como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%I %NI %OI | Analiza la hora (reloj de 12 horas) como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%M %NM %OM | Analiza el minuto como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2. Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%S %NS %OS | Analiza el segundo como un número decimal. El ancho N especifica el número máximo de caracteres a leer. El ancho por defecto es 2 si Duration es convertible a std::chrono::seconds, de lo contrario, está determinado por la precisión decimal de Duration y el campo se interpreta como un longdouble en un formato fijo, con el carácter de punto decimal determinado por la configuración regional (si se encuentra). Los ceros iniciales están permitidos pero no son obligatorios. El comando modificado | |
%p | Analiza el equivalente de la configuración regional de las designaciones AM/PM asociadas con un reloj de 12 horas. | |
%R | Equivalente a "%H:%M" . | |
%T | Equivalente a "%H:%M:%S" . | |
%r | Analiza la hora del día del reloj de 12 horas de la configuración regional. | |
%X %EX | Analiza la representación de la hora del día de la configuración regional. El comando modificado | |
Misceláneos | ||
%c %Ec | Analiza la representación de fecha y hora de la configuración regional. El comando modificado | |
%z %Ez %Oz | Analiza el desplazamiento de UTC en el formato [+|-]hh[mm] . Por ejemplo, -0430 se refiere a 4 horas 30 minutos detrás de UTC y 04 se refiere a 4 horas delante de UTC. Los comandos modificados | |
%Z | Analiza la abreviatura o el nombre del huso horario, tomado como la secuencia más larga de caracteres que solo contiene los caracteres de la A a la Z , de la a a la z , del 0 al 9 , - , + , _ y / . |
[editar]Valor de retorno
is
.
[editar]Véase también
(C++20) | Analiza un objeto chrono a partir de un flujo (plantilla de función) |