Compartir vía


funciones<chrono>

abs(duration)

Devuelve d si d >= d.zero(); de lo contrario, devuelve -d.

Sintaxis

template <class Rep, class Period>
constexpr duration<Rep, Period> abs(duration<Rep, Period> d ); // C++17

Parámetros

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 devuelto

Valor absoluto de d.

Ejemplo: abs(duration)

// compile using: /std:c++latest
#include <chrono>
#include <iostream>

int main()
{
    std::cout << abs(-24h);
    return 0;
}
24h

ceil(duration)

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.

Sintaxis

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
ceil(const duration<Rep, Period>& d);  // C++17

Parámetros

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.

Valor devuelto

Devuelve el elemento duration más pequeño que se puede representar en ToDuration que es mayor o igual que el parámetro d.

Comentarios

ceil no participa en la resolución de sobrecarga a menos que el tipo de ToDuration sea una instancia de duration.

ceil(time_point)

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.

Sintaxis

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
ceil(const time_point<Clock, Duration>& t);  // C++17

Parámetros

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.

Valor devuelto

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()));.

Comentarios

ceil no participa en la resolución de sobrecarga a menos que el tipo de ToDuration sea una instancia de duration.

clock_cast

Convierte el elemento time_point de un reloj en un elemento time_point equivalente para otro reloj.

Sintaxis

template <class DestClock, class SourceClock, class Duration> 
auto clock_cast(const time_point<SourceClock, Duration>& t); // C++20

Parámetros

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.

Valor devuelto

Elemento time_point equivalente a t, pero específico para DestClock.

Comentarios

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.

Por ejemplo, clock_cast

// 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

current_zone

Obtiene el objeto de zona horaria actual.

Sintaxis

const time_zone* current_zone();  // C++20

Valor devuelto

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.

duration_cast

Convierte un objeto duration en el tipo del elemento duration de destino especificado.

Sintaxis

template <class ToDuration, class Rep, class Period>
constexpr ToDuration
duration_cast(const duration<Rep, Period>& d);  // C++11

Parámetros

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.

Valor devuelto

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.

Comentarios

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.

Por ejemplo, duration_cast

// 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

floor(duration)

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.

Sintaxis

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
floor(const duration<Rep, Period>& d);  // C++17

Parámetros

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.

Valor devuelto

Devuelve el elemento duration más grande que se puede representar en ToDuration que es menor o igual que el parámetro d.

Comentarios

floor no participa en la resolución de sobrecarga a menos que el tipo de ToDuration sea una instancia de duration.

floor(time_point)

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.

Sintaxis

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
floor(const time_point<Clock, Duration>& tp);  // C++17

Parámetros

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.

Valor devuelto

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()));.

Comentarios

floor no participa en la resolución de sobrecarga a menos que el tipo de ToDuration sea una instancia de duration.

from_stream

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);

Parámetros de plantilla

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.

Parámetros

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.

Valor devuelto

Flujo de entrada, is

Ejemplo: from_stream

// 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

Comentarios

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.

Cadenas de formato from_stream

El formato puede ser una de estas cadenas:

Date

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

Día

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

Día de la semana

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

Semana/día del año

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

Hora del día

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

Mes

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

Year

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

Año basado en semanas en formato ISO 8601

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

General

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 +.

Marcas por tipo

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".

get_leap_second_info

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.

Sintaxis

template<class Duration>
leap_second_info
get_leap_second_info(const utc_time<Duration>& ut);  // C++20

Parámetros

ut
Elemento utc_time de origen para el que se va a obtener el elemento leap_second_info.

Valor devuelto

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.

get_tzdb

Obtiene la primera entrada de la lista de bases de datos de zona horaria de todo el programa.

Sintaxis

const tzdb& get_tzdb();  // C++20

Valor devuelto

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.

Comentarios

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.

get_tzdb_list

Obtiene la base de datos de zona horaria singleton de todo el programa.

Sintaxis

tzdb_list& get_tzdb_list();  // C++20

Valor devuelto

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.

Comentarios

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.

is_am

Predicado cuando la hora especificada está en la parte anterior al meridiano (AM) del día.

Sintaxis

constexpr bool is_am(const hours& h) noexcept;  // C++20

Parámetros

h
Representación de hours de origen en notación de 24 horas.

Valor devuelto

Devuelve true si 0h <= h && h <= 11h; de lo contrario, devuelve false.

is_pm

Predicado cuando la hora especificada está en la parte posterior al meridiano (PM) del día.

Sintaxis

constexpr bool is_pm(const hours& h) noexcept;  // C++20

Parámetros

h
Representación de hours de origen en notación de 24 horas.

Valor devuelto

Devuelve true si 12h <= h && h <= 23h; de lo contrario, devuelve false.

locate_zone

Obtiene un objeto de zona horaria especificado por el nombre de zona horaria.

Sintaxis

const time_zone* locate_zone(string_view tz_name);  // C++20

Parámetros

tz_name
Nombre de la zona horaria que se va a devolver.

Valor devuelto

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.

Comentarios

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.

make12

Devuelve la hora especificada en notación de 12 horas.

Sintaxis

constexpr hours make12(const hours& h) noexcept;  // C++20

Parámetros

h
Representación de hours de origen en notación de 24 horas.

Valor devuelto

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].

make24

Devuelve la hora especificada en notación de 24 horas.

Sintaxis

constexpr hours make24(const hours& h, bool is_pm) noexcept;  // C++20

Parámetros

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).

Valor devuelto

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].

reload_tzdb

Vuelve a cargar la base de datos de zona horaria si hay disponible información actualizada.

Sintaxis

const tzdb& reload_tzdb();

Valor devuelto

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.

Comentarios

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().

remote_version

Obtiene una cadena que contiene la versión más reciente de la base de datos remota.

Sintaxis

string remote_version();

Valor devuelto

Devuelve un elemento string que contiene la versión más reciente de la base de datos remota.

round(duration)

Redondea el elemento duration especificado al elemento duration más cercano que se puede representar en el tipo de destino.

Sintaxis

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
round(const duration<Rep, Period>& d);  // C++17

Parámetros

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.

Valor devuelto

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.

Comentarios

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.

round(time_point)

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);

Parámetros

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.

Valor devuelto

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()));.

Comentarios

round no participa en la resolución de sobrecarga a menos que el tipo de ToDuration sea una instancia de duration.

time_point_cast

Convierte un objeto time_point en un elemento time_point que tiene un tipo de duration diferente.

Sintaxis

template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration>
time_point_cast(const time_point<Clock, Duration>& tp);  // C++11

Parámetros

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.

Valor devuelto

Devuelve un objeto time_point que tiene el tipo de ToDuration. De hecho, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Comentarios

A menos que ToDuration sea una especialización de duration, esta función no participa en la resolución de sobrecarga.

Consulte también

<chrono>
Literales chrono
chrono Operadores
Clase duration
Clase time_point
Clase time_zone