funciones<chrono>
Devuelve d
si d >= d.zero()
; de lo contrario, devuelve -d
.
template <class Rep, class Period>
constexpr duration<Rep, Period> abs(duration<Rep, Period> d ); // C++17
Rep
Tipo de la representación interna del origen duration
d
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
d
Objeto duration
de origen.
Valor absoluto de d
.
// compile using: /std:c++latest
#include <chrono>
#include <iostream>
int main()
{
std::cout << abs(-24h);
return 0;
}
24h
Devuelve el elemento duration
más pequeño que se puede representar en el tipo de destino que es mayor o igual que el elemento duration
especificado.
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
ceil(const duration<Rep, Period>& d); // C++17
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Rep
Tipo de la representación interna del origen duration
d
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
d
Objeto duration
de origen.
Devuelve el elemento duration
más pequeño que se puede representar en ToDuration
que es mayor o igual que el parámetro d
.
ceil
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
.
Devuelve el punto de tiempo más pequeño que se puede representar en el elemento duration
de destino que es mayor o igual que el punto de tiempo especificado.
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
ceil(const time_point<Clock, Duration>& t); // C++17
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Clock
Tipo de reloj común del resultado y el parámetro tp
de origen.
Duration
Tipo de duration
de tp
.
tp
Objeto time_point
de origen.
Devuelve el punto de tiempo más pequeño que se puede representar mediante ToDuration
que es mayor o igual que tp
. De hecho, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));
.
ceil
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
.
Convierte el elemento time_point
de un reloj en un elemento time_point
equivalente para otro reloj.
template <class DestClock, class SourceClock, class Duration>
auto clock_cast(const time_point<SourceClock, Duration>& t); // C++20
DestClock
Tipo de reloj en el que se va a convertir el elemento time_point
.
Duration
Elemento duration
del elemento SourceClock
, o uno que especifique.
SourceClock
Tipo de reloj en el que se basa el elemento time_point
que se va a convertir.
t
Objeto time_point
que se va a convertir.
Elemento time_point
equivalente a t
, pero específico para DestClock
.
Los parámetros SourceClock
y Duration
se pueden deducir mediante la deducción de argumentos de plantilla de clase cuando no se pasan explícitamente. Por ejemplo, dado clock_cast<utc_clock>(file_clock::now())
, se deduce que SourceClock
es file_clock
y se deduce que Duration
es file_clock::duration
.
En la siguiente lista de conversiones de reloj bien formadas, está seleccionada la que requiere menos pasos de conversión para pasar de SourceClock
a DestClock
.
clock_time_conversion<DestClock, SourceClock>{}(t)
clock_time_conversion<DestClock, system_clock>{}(
clock_time_conversion<system_clock, SourceClock>{}(t))
clock_time_conversion<DestClock, utc_clock>{}(
clock_time_conversion<utc_clock, SourceClock>{}(t))
clock_time_conversion<DestClock, utc_clock>{}(
clock_time_conversion<utc_clock, system_clock>{}(
clock_time_conversion<system_clock, SourceClock>{}(t)))
clock_time_conversion<DestClock, system_clock>{}(
clock_time_conversion<system_clock, utc_clock>{}(
clock_time_conversion<utc_clock, SourceClock>{}(t)))
Para obtener más información sobre lo que hace clock_time_conversion
, consulte la estructura clock_time_conversion
.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
utc_clock::time_point t = clock_cast<utc_clock>(file_clock::now());
std::cout << t;
return 0;
}
2021-10-11 22:58:17.8540720
Obtiene el objeto de zona horaria actual.
const time_zone* current_zone(); // C++20
Devuelve un puntero a time_zone
como si se realizara una llamada a get_tzdb().current_zone()
. Genera una excepción runtime_error
si es la primera referencia a la base de datos de zona horaria y no se puede inicializar la base de datos de zona horaria.
Convierte un objeto duration
en el tipo del elemento duration
de destino especificado.
template <class ToDuration, class Rep, class Period>
constexpr ToDuration
duration_cast(const duration<Rep, Period>& d); // C++11
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Rep
Tipo de la representación interna del origen duration
d
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
d
Objeto duration
de origen que se va a convertir al tipo del elemento duration
de destino.
Objeto de tipo ToDuration
que representa .duration
d
Si es necesario, se trunca para adaptarse al tipo de destino. El resultado de convertir un elemento duration
de punto flotante en un elemento duration
entero es indefinido si el origen contiene NaN
, infinito o es demasiado grande para la representación en el elemento duration
de destino.
No es necesario usar duration_cast
para convertir entre tipos duration
cuando el período de origen es divisible exactamente por el período de destino, como cuando se convierten minutos a segundos. Además, no es necesario para convertir entre tipos duration
de punto flotante. Puede realizar ambas conversiones mediante conversiones normales o constructores duration
.
duration_cast
no participa en la resolución de sobrecarga a menos que ToDuration
sea una instancia de duration
. Realiza todas las conversiones mediante static_cast
en lugar de conversiones implícitas. Las multiplicaciones y divisiones se evitan si es posible. Por ejemplo, cuando el compilador sabe que la relación común de los períodos de destino y de origen tiene un numerador o un denominador de 1. Los cálculos se realizan en el tipo más amplio disponible y, a continuación, se convierten como si se tratara de static_cast
en el tipo del resultado cuando se terminan.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
seconds s(1);
std::cout << duration_cast<microseconds>(s) << '\n';
std::cout << duration_cast<nanoseconds>(s) << '\n';
return 0;
}
1000000us
1000000000ns
Devuelve el elemento duration
más grande que se puede representar en el tipo de destino que es menor o igual que el elemento duration
especificado.
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
floor(const duration<Rep, Period>& d); // C++17
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Rep
Tipo de la representación interna del origen duration
d
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
d
Objeto duration
de origen.
Devuelve el elemento duration
más grande que se puede representar en ToDuration
que es menor o igual que el parámetro d
.
floor
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
.
Devuelve el punto de tiempo más grande que se puede representar en el elemento duration
de destino que es menor o igual que el punto de tiempo especificado.
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
floor(const time_point<Clock, Duration>& tp); // C++17
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Clock
Tipo de reloj común del resultado y el parámetro tp
de origen.
Duration
Tipo de duration
de tp
.
tp
Objeto time_point
de origen.
Devuelve el punto de tiempo más grande que se puede representar mediante ToDuration
que es menor o igual que tp
. De hecho, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));
.
floor
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
.
Analice el flujo de entrada en uno de los tipos de intervalo u hora std::chrono
, como day
, month
, month_day
, weekday
, year
, year_month
y year_month_day
con el formato especificado.
Si se produce un error en el análisis, se llama a is.setstate
(ios_base::failbit
) y no se modifica el parámetro de salida.
// 1) day - C++20
template<class charT class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
day& d, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 2) duration - C++20
template<class charT, class traits, class Rep, class Period, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
duration<Rep, Period>& dur, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 3) file_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
file_time<Duration>& ft, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 4) gps_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
gps_time<Duration>& gt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 5) local_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
local_time<Duration>& lt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 6) month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
month& m, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 7) month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
month_day& md, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 8) utc_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
utc_time<Duration>& ut, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 9) sys_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
sys_time<Duration>& st, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 10) tai_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
tai_time<Duration>& tt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 11) weekday - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
weekday& wd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 12) year - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year& y, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 13) year_month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year_month& ym, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 14) year_month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year_month_day& ymd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
Alloc
Tipo que representa el objeto asignador que controla la asignación y la desasignación de memoria de la cadena.
charT
Tipo de datos de un carácter único que se va a leer del flujo y almacenar en la cadena. La biblioteca estándar de C++ proporciona especializaciones de esta plantilla de clase, con las definiciones de tipo string
para elementos de tipo char
, wstring
para wchar_t
, u16string
para char16_t
y u32string
para char32_t
.
traits
Describe los atributos charT
para la especialización basic_string
y basic_istream
.
Rep
Tipo de representación interna de un tipo duration
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
Duration
Tipo de duration
utilizado para la especialización de la hora.
abbrev
Si abbrev
no es nullptr
, se especifica el especificador de formato %Z
y el análisis se realiza correctamente, abbrev
contiene el valor analizado.
d
Si el análisis se realiza correctamente, contiene el día analizado cuando la función vuelve.
dur
Elemento duration
analizado del flujo.
fmt
Cadena de formato utilizada para buscar coincidencias con la entrada. Consulte Análisis de cadenas de formato para obtener la lista de opciones de formato de análisis.
ft
Elemento file_time
analizado del flujo.
gt
Elemento gps_time
analizado del flujo.
is
Flujo de entrada que se va a analizar.
lt
Elemento local_time
analizado del flujo.
m
Elemento month
analizado del flujo.
md
Elemento month_day
analizado del flujo.
offset
Si offset
no es nullptr
, se especifica el especificador de formato %z
o una variante modificada, como %Ez
o %0z
, y el análisis se realiza correctamente,offset
apunta al valor analizado.
st
Elemento sys_time
analizado del flujo.
tt
Elemento tai_time
analizado del flujo.
ut
Elemento utc_time
analizado del flujo.
wd
Elemento weekday
analizado del flujo.
y
Elemento year
analizado del flujo.
ym
Elemento year_month
analizado del flujo.
ymd
Elemento year_month_day
analizado del flujo.
Flujo de entrada, is
// compile using: /std:c++latest
#include <chrono>
#include <iostream>
int main()
{
std::istringstream str{ "22" };
std::basic_istream<char> stream{ str.rdbuf() };
std::chrono::day d;
std::chrono::from_stream(stream, "%d", d);
std::cout << d << "\n";
return 0;
}
22
7) Si se usa %Z
y se analiza correctamente, ese valor se asignará a *abbrev
si abbrev
no es null. Si se usa %z
(o una variante modificada) y se analiza correctamente, ese valor se asignará a *offset
si offset
no es NULL.
12) Si se usa %Z
y se analiza correctamente, ese valor se asignará a *abbrev
si abbrev
no es null. Si se usa %z
(o una variante modificada) y se analiza correctamente, ese valor se asignará a *offset
si offset
no es NULL.
El formato puede ser una de estas cadenas:
Especificador | Descripción |
---|---|
%D |
Equivalente a %m/%d/%y . |
%F % NF . |
Equivalente a %Y-%m-%d . Si se modifica con un ancho N , el ancho se aplica solo a %Y . |
%x %Ex |
Representación de fecha de la configuración regional.%Ex analiza la representación de fecha alternativa de la configuración regional.1 |
Especificador | Descripción |
---|---|
%d %Od % Nd .%e %Oe % Ne . |
Día del mes como número decimal.% Nd especifica el número máximo de caracteres que se van a leer, por ejemplo, %1d . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %Od (letra O , no cero) interpreta la representación alternativa de la configuración regional del día del mes.1 %e es equivalente a %d y se puede modificar como %d .1 |
Especificador | Descripción |
---|---|
%a %A |
Nombre completo o abreviado de la configuración regional sin distinción entre mayúsculas y minúsculas.%A equivale a %a . |
%u % Nu . |
Día de la semana en formato ISO como un número decimal (1-7), donde el lunes es 1. % Nu especifica el número máximo de caracteres que se van a leer, por ejemplo, %2u . Si no se especifica N, el valor predeterminado es 1. Se permiten ceros a la izquierda, pero no son obligatorios. |
%w % Nw .%Ow |
Día de la semana como un número decimal (0-6), donde el domingo es 0.% Nw especifica el número máximo de caracteres que se van a leer, por ejemplo, %2w . Si no se especifica N, el valor predeterminado es 1.Se permiten ceros a la izquierda, pero no son obligatorios. %Ow (letra O , no cero) interpreta la representación alternativa de la configuración regional.1 |
Especificador | Descripción |
---|---|
%j % Nj . |
Si el tipo al que se va a dar formato es una especialización de duration, el número decimal de días sin relleno. De lo contrario, el día del año como un número decimal. Jan 1 es 001 . Si el resultado tiene menos de tres dígitos, se rellena a la izquierda con 0 (cero) hasta los tres dígitos.% Nj especifica el número máximo de caracteres que se van a leer, por ejemplo, %2j . Si no se especifica N, el valor predeterminado es 3. Se permiten dígitos iniciales, pero no son necesarios. |
%U % NU .%OU |
Número de semana del año como 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 antes de esa semana se encuentran en la semana 00 . Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero).% NU especifica el número máximo de caracteres que se van a leer, por ejemplo, %2U . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %OU (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
%W % NW .%OW |
Número de semana del año como 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 antes de esa semana se encuentran en la semana 00 .Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero).% NW especifica el número máximo de caracteres que se van a leer, por ejemplo, %2W . Si no se especifica N, el valor predeterminado es 1.Se permiten ceros a la izquierda, pero no son obligatorios. %OW (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
Especificador | Descripción |
---|---|
%H % NH .%OH |
Hora (reloj de 24 horas) como número decimal. Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero).% NH especifica el número máximo de caracteres que se van a leer, por ejemplo, %1H . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %OH (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
%I % NI .%OI |
Hora (reloj de 12 horas) como número decimal. Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero).% NI especifica el número máximo de caracteres que se van a leer, por ejemplo, %1I . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %OI (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
%M % NM .%OM |
Minutos como número decimal. Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero).% NM especifica el número máximo de caracteres que se van a leer, por ejemplo, %3M . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %OM (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
%S % NS .%OS |
Segundos como número decimal. Si el número de segundos es menor que 10, el resultado tiene el prefijo 0 (cero). Si la precisión de la entrada no se puede representar exactamente con segundos, el formato es un número de punto flotante decimal con un formato fijo. Tiene una precisión de microsegundos si la función no puede convertir los segundos decimales de punto flotante en 18 dígitos fraccionarios. De lo contrario, su precisión coincide con la precisión de la entrada. El carácter del separador decimal se localiza según la configuración regional.% NS especifica el número máximo de caracteres que se van a leer, por ejemplo, %3S . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %OS (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
%p |
El equivalente de la configuración regional de las designaciones am/PM asociadas a un reloj de 12 horas. |
%r |
Hora del reloj de 12 horas de la configuración regional. |
%R |
Equivalente a %H:%M . |
%T |
Equivalente a "%H:%M:%S" . |
%X , %EX |
Representación de hora de la configuración regional.%EX analiza la representación de hora de la configuración regional alternativa.1 |
Especificador | Descripción |
---|---|
%b , , %B , %h |
Nombre completo o abreviado del mes de la configuración regional. Si el valor no contiene un mes válido, se genera una excepción format_error .%h equivale a %b . |
%m , % Nm , %Om |
Mes como número decimal. Enero es el 1.% Nm especifica el número máximo de caracteres que se van a leer, por ejemplo, %3m . Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %Om (letra O , no cero) interpreta la representación alternativa de la configuración regional.1 |
Especificador | Descripción |
---|---|
%C , % NC , %EC |
Siglo como un número decimal.% NC especifica el número máximo de caracteres que se van a leer, por ejemplo, %1N . Si no se especifica N, el valor predeterminado es 2. Se permiten ceros a la izquierda, pero no son obligatorios.%EC interpreta la representación alternativa de la configuración regional del siglo. |
%y , % Ny , %Ey , %Oy |
Dos últimos dígitos decimales del año. Si no se especifica el siglo (por ejemplo, mediante %C ), se supone que los valores del intervalo [69, 99] hacen referencia a los años 1969 a 1999 y se supone que los valores del intervalo [00, 68] hacen referencia a los años 2000 a 2068.% Ny especifica el número máximo de caracteres que se van a leer. Si no se especifica N, el valor predeterminado es 2.Se permiten ceros a la izquierda, pero no son obligatorios. %Ey y %Oy (letra O , no cero) interpretan la representación alternativa de la configuración regional.1 |
%Y , % NY , %EY , |
Año como número decimal. Si el resultado tiene menos de cuatro dígitos, se rellena a la izquierda con 0 (cero) hasta los cuatro dígitos.% NY especifica el número máximo de caracteres que se van a leer. Si no se especifica N, el valor predeterminado es 4.%EY analiza la representación alternativa del año completo de la configuración regional.1 |
En el formato ISO 8601, las semanas empiezan el lunes. La primera semana del año debe incluir el 4 de enero e incluir el primer jueves del año.
Especificador | Sustitución |
---|---|
%g % Ng . |
Dos últimos dígitos decimales del año basado en semanas en formato ISO. Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero). % Ng especifica el número máximo de caracteres que se van a leer, por ejemplo, %1g . Si no se especifica N, el valor predeterminado es 2. |
%G % NG . |
Año basado en semanas en formato ISO como número decimal. Si el resultado tiene menos de cuatro dígitos, se rellena a la izquierda con 0 (cero) hasta los cuatro dígitos. % NG especifica el número máximo de caracteres que se van a leer, por ejemplo, %1G . Si no se especifica N, el valor predeterminado es 4. |
%V %OV % NV . |
Número de semana basado en semanas en formato ISO como número decimal. Si el resultado tiene un solo dígito, tiene el prefijo 0 (cero). % NV especifica el número máximo de caracteres que se van a leer, por ejemplo, %1V . Si no se especifica N, el valor predeterminado es 2.%OV (letra O , no cero) analiza la representación alternativa de la configuración regional.1 |
Especificador | Sustitución |
---|---|
%% |
Coincidencia del carácter % |
%c %Ec |
Representación de fecha y hora de la configuración regional.%Ec interpreta la representación alternativa de fecha y hora de la configuración regional.1 |
%n |
Coincidencia del carácter de nueva línea |
%t |
Coincidencia con cero o un carácter de espacio en blanco |
%z %Ez %Oz |
Desplazamiento con respecto a UTC con el formato [+|-]hh[mm] . Por ejemplo, -0430 hace referencia a 4 horas y 30 minutos por detrás de UTC y 04 hace referencia a 4 horas por delante de UTC.%Ez y %Oz (letra O , no cero) analizan el carácter : entre las horas y los minutos y representan ceros iniciales en el campo de hora opcional1: [+|-]h[h][:mm] . Por ejemplo, -04:30 hace referencia a 4 horas y 30 minutos por detrás de UTC y 4 hace referencia a 4 horas por delante de UTC. |
%Z |
Abreviatura o nombre de la zona horaria. Se analiza una sola palabra. Esta palabra solo puede contener caracteres alfanuméricos del juego de caracteres de origen básico, o uno de los caracteres _ , / , - o + . |
Clase | Especificador/Marca |
---|---|
day |
d, e |
duration |
j, H, I, M, S, r, R, T, p (q y Q solo son para formato, no para análisis) |
file_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
gps_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
hh_mm_ss |
H, I, M, S, r, R, T, p |
local_time |
c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
local_time_format_t |
z, Z, c, x, X, D, F, Y, C, y, b, B, h, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W |
local_info |
z, Z |
month |
b, h, B, m |
month_day |
B, d, j, e, b, h, m |
month_day_last |
B, d, j, e, b, h, m |
month_weekday |
b, B, h, m, a, A, u, w |
month_weekday_last |
b, B, h, m, a, A, u, w |
sys_info |
z, Z |
sys_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
tai |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
utc_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
weekday |
a, A, u, w |
weekday_indexed |
a, A, u, w |
weekday_last |
a, A, u, w |
year |
Y, y, C |
year_month |
Y, y, B, g, G, h, C, b, m |
year_month_day |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_day_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
zoned_time |
z, Z, c, x, X, D, F, Y, C, y, b, B, h, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W |
1La implementación es coherente actualmente con strftime en que aunque se aceptan O
(letra O) y e
, se omiten. Es decir, "%Od"
se interpreta como "%d"
.
Devuelve un elemento leap_second_info
correspondiente a la hora especificada. Esto proporciona información sobre si la hora proporcionada se produce durante una inserción de segundos intercalares. También proporciona el número de segundos intercalares que se han agregado entre el 1 de enero de 1970 y la hora especificada. Se produce una inserción de segundos intercalares cuando el Servicio internacional de sistemas de referencia y rotación de la Tierra (IERS) declara que se agregará un segundo intercalar (lo que da lugar a un minuto de 61 segundos) para tener en cuenta la diferencia entre el tiempo atómico y el tiempo registrado al medir la rotación de la Tierra, que es irregular y se ralentiza gradualmente.
template<class Duration>
leap_second_info
get_leap_second_info(const utc_time<Duration>& ut); // C++20
ut
Elemento utc_time
de origen para el que se va a obtener el elemento leap_second_info
.
Devuelve un elemento leap_second_info
cuyo miembro is_leap_second
es true
si ut
se encuentra durante una inserción de segundo intercalar positivo; de lo contrario, false
. El elapsed
miembro contiene la suma de segundos bisiesto entre la fecha 1970-01-01
de época y ut
. Si is_leap_second
es true
, el segundo intercalar al que hace referencia ut
se incluye en la suma elapsed
.
Obtiene la primera entrada de la lista de bases de datos de zona horaria de todo el programa.
const tzdb& get_tzdb(); // C++20
Devuelve una referencia al primer objeto tzdb
como si se realizara una llamada a get_tzdb_list().front()
. Genera una excepción runtime_error
si es la primera referencia a la base de datos de zona horaria y no se puede inicializar la base de datos de zona horaria.
Si aún no se ha inicializado, get_tzdb
inicializa la base de datos de zona horaria de todo el programa en el primer acceso. Tras la inicialización, la base de datos es un elemento tzdb_list
que contiene un único objeto tzdb
inicializado.
Obtiene la base de datos de zona horaria singleton de todo el programa.
tzdb_list& get_tzdb_list(); // C++20
Devuelve una referencia al objeto tzdb_list
de todo el programa. Genera una excepción runtime_error
si no puede devolver una referencia a un objeto tzdb_list
válido.
Si aún no se ha inicializado, get_tzdb_list
inicializa la base de datos de zona horaria de todo el programa en el primer acceso. Tras la inicialización, la base de datos es un elemento tzdb_list
que contiene un único objeto tzdb
inicializado. La función get_tzdb_list
es segura para subprocesos.
Predicado cuando la hora especificada está en la parte anterior al meridiano (AM) del día.
constexpr bool is_am(const hours& h) noexcept; // C++20
h
Representación de hours
de origen en notación de 24 horas.
Devuelve true
si 0h <= h && h <= 11h
; de lo contrario, devuelve false
.
Predicado cuando la hora especificada está en la parte posterior al meridiano (PM) del día.
constexpr bool is_pm(const hours& h) noexcept; // C++20
h
Representación de hours
de origen en notación de 24 horas.
Devuelve true
si 12h <= h && h <= 23h
; de lo contrario, devuelve false
.
Obtiene un objeto de zona horaria especificado por el nombre de zona horaria.
const time_zone* locate_zone(string_view tz_name); // C++20
tz_name
Nombre de la zona horaria que se va a devolver.
Devuelve un puntero a time_zone
como si se realizara una llamada a get_tzdb().locate_zone(tz_name)
. Genera una excepción runtime_error
si no puede encontrar la zona horaria especificada o si es la primera referencia a la base de datos de zona horaria y no se puede inicializar la base de datos de zona horaria.
Si aún no se ha inicializado, locate_zone
inicializa la base de datos de zona horaria de todo el programa en el primer acceso. Tras la inicialización, la base de datos es un elemento tzdb_list
que contiene un único objeto tzdb
inicializado.
Devuelve la hora especificada en notación de 12 horas.
constexpr hours make12(const hours& h) noexcept; // C++20
h
Representación de hours
de origen en notación de 24 horas.
Devuelve el equivalente en notación de 12 horas de h
en el intervalo [1h, 12h]
. El valor devuelto no se especifica si h
no está en el intervalo [0h, 23h]
.
Devuelve la hora especificada en notación de 24 horas.
constexpr hours make24(const hours& h, bool is_pm) noexcept; // C++20
h
Representación del elemento hours
de origen en notación de 12 horas.
is_pm
La representación del elemento hours
de origen es PM (si es true
) o AM (si es false
).
Si is_pm
es false
, make24
devuelve el equivalente en notación de 24 horas de h
en el intervalo [0h, 11h]
, suponiendo que h
representa una hora AM. De lo contrario, devuelve el equivalente en notación de 24 horas de h
en el intervalo [12h, 23h]
, suponiendo que h
representa una hora PM. El valor devuelto no se especifica si h
no está en el intervalo [1h, 12h]
.
Vuelve a cargar la base de datos de zona horaria si hay disponible información actualizada.
const tzdb& reload_tzdb();
Después de realizar una actualización de la base de datos de zona horaria, si la hay, reload_tzdb
devuelve una referencia al primer objeto tzdb
como si se realizara una llamada a get_tzdb_list().front()
. Genera una excepción runtime_error
si no puede devolver una referencia a un objeto tzdb
válido.
La base de datos de zona horaria local es la proporcionada cuando el programa accede por primera vez a la base de datos, como si se realizara una llamada a current_zone
. Mientras se ejecuta el programa, la implementación puede actualizar la base de datos de zona horaria. La actualización no afecta al programa de ninguna manera a menos que el programa llame a la función reload_tzdb
. La base de datos de zona horaria potencialmente actualizada se llama base de datos de zona horaria remota.
La función reload_tzdb
comprueba la versión de la base de datos de zona horaria local y la base de datos de zona horaria remota. Si las versiones de las bases de datos local y remota son las mismas, no realiza ningún cambio. De lo contrario, la base de datos remota se inserta en la parte delantera de tzdb_list
a la que accede get_tzdb_list
. Una actualización no invalida ningún puntero, referencia o iterador. La función reload_tzdb
es segura para subprocesos para las llamadas a get_tzdb_list().front()
y get_tzdb_list().erase_after()
.
Obtiene una cadena que contiene la versión más reciente de la base de datos remota.
string remote_version();
Devuelve un elemento string
que contiene la versión más reciente de la base de datos remota.
Redondea el elemento duration
especificado al elemento duration
más cercano que se puede representar en el tipo de destino.
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
round(const duration<Rep, Period>& d); // C++17
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
en la que treat_as_floating_point_v<typename ToDuration::rep>
es false
.
Rep
Tipo de la representación interna del origen duration
d
.
Period
Tipo std::ratio
que representa la relación de un segundo con el tipo Rep
de origen (es decir, segundos por Rep
).
d
Objeto duration
de origen.
Devuelve el elemento duration
más cercano que se puede representar en ToDuration
para el parámetro d
. Los empates van al valor par, es decir, el valor de t
en el que t % 2 == 0
.
round
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
y ToDuration
tenga una representación entera.
Devuelve el punto de tiempo más cercano que se puede representar en el elemento duration
destino al punto de tiempo especificado.
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
round(const time_point<Clock, Duration>& tp);
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
en la que treat_as_floating_point_v<typename ToDuration::rep>
es false
.
Clock
Tipo de reloj común del resultado y el parámetro tp
de origen.
Duration
Tipo de duration
de tp
.
tp
Objeto time_point
de origen.
Devuelve el punto de tiempo más cercano que se puede representar utilizando ToDuration
en tp
. Los empates van al valor par, es decir, el valor de t
en el que t % 2 == 0
. De hecho, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));
.
round
no participa en la resolución de sobrecarga a menos que el tipo de ToDuration
sea una instancia de duration
.
Convierte un objeto time_point
en un elemento time_point
que tiene un tipo de duration
diferente.
template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration>
time_point_cast(const time_point<Clock, Duration>& tp); // C++11
ToDuration
Tipo de duration
de destino. Restringido como una especialización de duration
.
Clock
Tipo de reloj común del resultado y el parámetro tp
de origen.
Duration
Tipo de duration
de tp
.
tp
Objeto time_point
que se va a convertir en uno que tiene el tipo de ToDuration
.
Devuelve un objeto time_point
que tiene el tipo de ToDuration
. De hecho, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));
.
A menos que ToDuration
sea una especialización de duration
, esta función no participa en la resolución de sobrecarga.
<chrono>
Literales chrono
chrono
Operadores
Clase duration
Clase time_point
Clase time_zone