Condividi tramite


<chrono> funzioni

abs(duration)

Restituisce se d >= d.zero(); in caso contrario restituisce .d-d

Sintassi

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

Parametri

Rep
Tipo della rappresentazione interna dell'origine durationd.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

d
Oggetto duration di origine.

Valore restituito

Valore assoluto di d.

Esempio: abs(duration)

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

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

ceil(duration)

Restituisce il più piccolo rappresentabile duration nel tipo di destinazione maggiore o uguale all'oggetto specificato duration.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Rep
Tipo della rappresentazione interna dell'origine durationd.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

d
Oggetto duration di origine.

Valore restituito

Restituisce il valore più duration piccolo rappresentabile in ToDuration maggiore o uguale al parametro d.

Osservazioni:

ceilnon partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di .duration

ceil(time_point)

Restituisce il punto di tempo più piccolo rappresentabile nella destinazione duration maggiore o uguale al punto di tempo specificato.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Clock
Tipo di clock comune del risultato e del parametro tpdi origine .

Duration
Tipo duration di tp.

tp
Oggetto time_point di origine.

Valore restituito

Restituisce il punto di tempo più piccolo rappresentabile usando ToDuration maggiore o uguale a tp. In effetti, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));.

Osservazioni:

ceilnon partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di .duration

clock_cast

Converte un oggetto time_point per un orologio in un oggetto equivalente time_point per un altro orologio.

Sintassi

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

Parametri

DestClock
Tipo di orologio in cui convertire .time_point

Duration
Oggetto duration dell'oggetto SourceClocko di quello specificato.

SourceClock
Tipo di orologio su cui si basa l'oggetto time_point da convertire.

t
Oggetto time_point da convertire.

Valore restituito

Oggetto time_point equivalente a t, ma specifico di DestClock.

Osservazioni:

I parametri SourceClock e Duration possono essere dedotti tramite la deduzione dell'argomento del modello di classe quando non vengono passati in modo esplicito. Ad esempio, dato clock_cast<utc_clock>(file_clock::now()), SourceClock viene dedotto come file_clocke Duration viene dedotto come file_clock::duration.

Nell'elenco seguente di conversioni di clock ben formate, quella che richiede il minor numero di passaggi di conversione da a SourceClockDestClock è selezionata.

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

Per altre informazioni sulle operazioni clock_time_conversion , vedere clock_time_conversion struct.

Esempioclock_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

Ottiene l'oggetto fuso orario corrente.

Sintassi

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

Valore restituito

Restituisce un puntatore a un oggetto time_zone come se da una chiamata a get_tzdb().current_zone(). Genera un'eccezione runtime_error se si tratta del primo riferimento al database del fuso orario e il database del fuso orario non può essere inizializzato.

duration_cast

Esegue il cast di un oggetto duration al tipo di destinazione duration specificato.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Rep
Tipo della rappresentazione interna dell'origine durationd.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

d
Oggetto di origine duration di cui eseguire il cast al tipo di destinazione duration .

Valore restituito

Oggetto di tipo ToDuration che rappresenta l'oggetto durationd. Se necessario, viene troncato per adattarsi al tipo di destinazione. Il risultato del cast di un oggetto duration a virgola mobile a un integrale duration non è definito se l'origine contiene un oggetto , un NaNinfinito o è troppo grande per la rappresentazione nella destinazione duration.

Osservazioni:

Non è necessario usare duration_cast per eseguire la conversione tra duration tipi quando il periodo di origine è esattamente divisibile per il periodo di destinazione, ad esempio quando si convertono minuti in secondi. Inoltre, non è necessario eseguire la conversione tra tipi a virgola mobile duration . È possibile eseguire entrambe le conversioni usando cast ordinari o duration costruttori.

duration_cast non partecipa alla risoluzione dell'overload, a meno che ToDuration non sia un'istanza di duration. Esegue tutte le conversioni usando static_cast invece di conversioni implicite. Se possibile, le moltiplicazioni e le divisioni vengono evitate. Ad esempio, quando il compilatore sa che il rapporto comune dei periodi di destinazione e di origine ha un numeratore o un denominatore pari a 1. I calcoli vengono eseguiti nel tipo più ampio disponibile, quindi convertiti come se fossero nel static_cast tipo di risultato al termine.

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

Restituisce il massimo rappresentabile duration nel tipo di destinazione minore o uguale all'oggetto specificato duration.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Rep
Tipo della rappresentazione interna dell'origine durationd.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

d
Oggetto duration di origine.

Valore restituito

Restituisce il massimo duration rappresentabile in ToDuration minore o uguale al parametro d.

Osservazioni:

floornon partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di .duration

floor(time_point)

Restituisce il punto di tempo più grande rappresentabile nella destinazione duration minore o uguale al punto di tempo specificato.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Clock
Tipo di clock comune del risultato e del parametro tpdi origine .

Duration
Tipo duration di tp.

tp
Oggetto time_point di origine.

Valore restituito

Restituisce il punto di tempo più grande rappresentabile usando ToDuration minore o uguale a tp. In effetti, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));.

Osservazioni:

floornon partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di .duration

from_stream

Analizzare il flusso di input in uno dei std::chrono tipi di intervallo o ora, ad dayesempio , weekdayyearyear_monthmonthmonth_day, year_month_day, e così via, usando il formato specificato.

Se l'analisi ha esito negativo, is.setstateviene chiamato (ios_base::failbit) e il parametro di output non viene modificato.

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

Parametri del modello

Alloc
Tipo che rappresenta l'oggetto allocatore che gestisce l'allocazione e la deallocazione della stringa della memoria.

charT
Tipo di dati di un singolo carattere da leggere dal flusso e archiviato nella stringa. La libreria standard C++ fornisce specializzazioni di questo modello di classe, con le definizioni dei tipi string per gli elementi di tipo char, wstring, per wchar_t, u16string per char16_te u32string per char32_t.

traits
Descrive gli charT attributi per la basic_string specializzazione e basic_istream .

Rep
Tipo di rappresentazione interna di un duration tipo.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

Duration
Tipo duration utilizzato per la specializzazione temporale.

Parametri

abbrev
Se abbrev non nullptrè e viene specificato l'identificatore %Z di formato e l'analisi ha esito positivo, abbrev contiene il valore analizzato.

d
Se l'analisi ha esito positivo, contiene il giorno analizzato al termine della funzione.

dur
Oggetto duration analizzato dal flusso.

fmt
Stringa di formato utilizzata per trovare la corrispondenza con l'input. Vedere Analizzare le stringhe di formato per l'elenco delle opzioni di formattazione dell'analisi.

ft
Oggetto file_time analizzato dal flusso.

gt
Oggetto gps_time analizzato dal flusso.

is
Flusso di input da analizzare.

lt
Oggetto local_time analizzato dal flusso.

m
Oggetto month analizzato dal flusso.

md
Oggetto month_day analizzato dal flusso.

offset
Se offset non nullptrè e l'identificatore %z di formato o la variante modificata, %Ez ad esempio o %0z è specificata, e l'analisi ha esito positivo, offset punta al valore analizzato.

st
Oggetto sys_time analizzato dal flusso.

tt
Oggetto tai_time analizzato dal flusso.

ut
Oggetto utc_time analizzato dal flusso.

wd
Oggetto weekday analizzato dal flusso.

y
Oggetto year analizzato dal flusso.

ym
Oggetto year_month analizzato dal flusso.

ymd
Oggetto year_month_day analizzato dal flusso.

Valore restituito

Flusso di input, is

Esempio: 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

Osservazioni:

7) Se %Z viene usato e analizzato correttamente, tale valore verrà assegnato a *abbrev se abbrev non è null. Se %z (o una variante modificata) viene usato e analizzato correttamente, tale valore verrà assegnato a *offset se offset non è null.

12) Se %Z viene usato e analizzato correttamente, tale valore verrà assegnato a *abbrev se abbrev non è null. Se %z (o una variante modificata) viene usato e analizzato correttamente, tale valore verrà assegnato a *offset se offset non è null.

from_stream stringhe di formato

Il formato può essere una di queste stringhe:

Data

Identificatore Descrizione
%D Equivalente a %m/%d/%y
%F
%NF
È equivalente a %Y-%m-%d. Se modificato con una larghezza N, la larghezza viene applicata solo %Ya .
%x
%Ex
Rappresentazione della data delle impostazioni locali.
%Ex analizza la rappresentazione della data alternativa delle impostazioni locali.1

Giornaliera

Identificatore Descrizione
%d
%Od
%Nd
%e
%Oe
%Ne
Giorno del mese come numero decimale.
%Nd specifica il numero massimo di caratteri da leggere, ad esempio %1d. Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%Od (lettera O, non zero) interpreta la rappresentazione alternativa delle impostazioni locali del giorno del mese.1
%e equivale a %d e può essere modificato come %d.1

Giorno della settimana

Identificatore Descrizione
%a
%A
Nome completo o abbreviato del giorno della settimana senza distinzione tra maiuscole e minuscole.
%A equivale a %a
%u
%Nu
Giorno feriale ISO come numero decimale (1-7), dove lunedì è 1.
%Nu specifica il numero massimo di caratteri da leggere, ad esempio %2u. Se N non è specificato, il valore predefinito è 1. Gli zeri iniziali sono consentiti ma non obbligatori.
%w
%Nw
%Ow
Giorno feriale come numero decimale (0-6), dove domenica è 0.
%Nw specifica il numero massimo di caratteri da leggere, ad esempio %2w. Se N non è specificato, il valore predefinito è 1.
Gli zere iniziali sono consentiti ma non obbligatori.
%Ow (lettera O, non zero) interpreta la rappresentazione alternativa delle impostazioni locali.1

Settimana/giorno dell'anno

Identificatore Descrizione
%j
%Nj
Se il tipo formattato è una specializzazione di durata, il numero decimale di giorni senza spaziatura interna. In caso contrario, il giorno dell'anno come numero decimale. Jan 1 è .001 Se il risultato è minore di tre cifre, viene riempito a sinistra con 0 (zero) a tre cifre.
%Njspecifica il numero massimo di caratteri da leggere, ad esempio %2j. Se N non è specificato, il valore predefinito è 3. Le cifre iniziali sono consentite ma non sono obbligatorie.
%U
%NU
%OU
Numero della settimana dell'anno come numero decimale. La prima domenica dell'anno è il primo giorno della settimana 01. I giorni dello stesso anno prima della settimana sono nella settimana 00. Se il risultato è una singola cifra, è preceduto da 0 (zero).
%NU specifica il numero massimo di caratteri da leggere, ad esempio %2U. Se N non è specificato, il valore predefinito è 2.
Gli zeri iniziali sono consentiti ma non sono obbligatori.
%OU (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1
%W
%NW
%OW
Numero della settimana dell'anno come numero decimale. Il primo lunedì dell'anno è il primo giorno della settimana 01. I giorni dello stesso anno prima della settimana sono nella settimana 00.
Se il risultato è una singola cifra, è preceduto da 0 (zero).
%NW specifica il numero massimo di caratteri da leggere, ad esempio %2W. Se N non è specificato, il valore predefinito è 1
Gli zeri iniziali sono consentiti ma non sono obbligatori.%OW (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1

Ora del giorno

Identificatore Descrizione
%H
%NH
%OH
Ora (orologio di 24 ore) come numero decimale. Se il risultato è una singola cifra, è preceduto da un 0 (zero).
%NH specifica il numero massimo di caratteri da leggere, %1Had esempio . Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%OH (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1
%I
%NI
%OI
Ora (orologio di 12 ore) come numero decimale. Se il risultato è una singola cifra, è preceduto da 0 (zero).
%NI specifica il numero massimo di caratteri da leggere, %1Iad esempio . Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%OI (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1
%M
%NM
%OM
Minuti come numero decimale. Se il risultato è una singola cifra, è preceduto da 0 (zero).
%NM specifica il numero massimo di caratteri da leggere, ad esempio %3M. Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%OM (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1
%S
%NS
%OS
Secondi come numero decimale. Se il numero di secondi è minore di 10, il risultato è preceduto da 0 (zero). Se la precisione dell'input non può essere rappresentata esattamente con secondi, il formato è un numero a virgola mobile decimale con un formato fisso. Ha una precisione di microsecondi se la funzione non riesce a convertire i secondi decimali a virgola mobile entro 18 cifre frazionarie. In caso contrario, la precisione corrisponde alla precisione dell'input. Il carattere per il separatore decimale viene localizzato in base alle impostazioni locali.
%NS specifica il numero massimo di caratteri da leggere, ad esempio %3S. Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%OS (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1
%p Equivalente delle designazioni AM/PM associate a un orologio di 12 ore.
%r L'ora dell'orologio delle impostazioni locali è di 12 ore.
%R È equivalente a %H:%M.
%T È equivalente a "%H:%M:%S".
%X, %EX Rappresentazione dell'ora delle impostazioni locali.
%EX analizza la rappresentazione temporale delle impostazioni locali alternative.1

Mese

Identificatore Descrizione
%b, %B, %h Nome completo o abbreviato del mese delle impostazioni locali. Se il valore non contiene un mese valido, viene generata un'eccezione format_error .
%h è pari a %b.
%m, %Nm, %Om Mese come numero decimale. Jan è 1.
%Nm specifica il numero massimo di caratteri da leggere, %3mad esempio . Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%Om (lettera O, non zero) interpreta la rappresentazione alternativa delle impostazioni locali.1

Year

Identificatore Descrizione
%C, %NC, %EC Secolo come numero decimale.
%NC specifica il numero massimo di caratteri da leggere, %1Nad esempio . Se N non è specificato, il valore predefinito è 2. Gli zere iniziali sono consentiti ma non obbligatori.
%EC interpreta la rappresentazione alternativa delle impostazioni locali del secolo.
%y, %Ny, %Ey, %Oy Ultime due cifre decimali dell'anno. Se il secolo non viene specificato diversamente (ad esempio, utilizzando %C), i valori nell'intervallo si presuppone che facciano riferimento agli anni dal 1969 al 1999 e i valori nell'intervallo [69, 99][00, 68] si presume che facciano riferimento agli anni da 2000 a 2068.
%Ny specifica il numero massimo di caratteri da leggere. Se N non è specificato, il valore predefinito è 2.
Gli zere iniziali sono consentiti ma non obbligatori.
%Ey e %Oy (lettera O, non zero) interpretano la rappresentazione alternativa delle impostazioni locali.1
%Y, %NY, %EY, Anno come numero decimale. Se il risultato è minore di quattro cifre, viene riempito a sinistra con 0 (zero) a quattro cifre.
%NY specifica il numero massimo di caratteri da leggere. Se N non è specificato, il valore predefinito è 4.
%EY analizza la rappresentazione dell'anno completo alternativo delle impostazioni locali.1

Anno basato su settimana ISO 8601

In ISO 8601, le settimane iniziano con lunedì. La prima settimana dell'anno deve includere il 4 gennaio e includere il primo giovedì dell'anno.

Identificatore Sostituzione
%g
%Ng
Ultime due cifre decimali dell'anno basato su settimana ISO. Se il risultato è una singola cifra, è preceduto da 0 (zero). %Ng specifica il numero massimo di caratteri da leggere, %1gad esempio . Se N non è specificato, il valore predefinito è 2
%G
%NG
Anno basato su settimana ISO come numero decimale. Se il risultato è minore di quattro cifre, viene riempito a sinistra con 0 (zero) a quattro cifre. %NG specifica il numero massimo di caratteri da leggere, %1Gad esempio . Se N non è specificato, il valore predefinito è 4
%V
%OV
%NV
Numero di settimana basato su settimana ISO come numero decimale. Se il risultato è una singola cifra, è preceduto da 0 (zero). %NV specifica il numero massimo di caratteri da leggere, %1Vad esempio . Se N non è specificato, il valore predefinito è 2
%OV (lettera O, non zero) analizza la rappresentazione alternativa delle impostazioni locali.1

Generale

Identificatore Sostituzione
%% Corrisponde al carattere %
%c
%Ec
Rappresentazione di data e ora delle impostazioni locali.
%Ec interpreta la rappresentazione alternativa di data e ora delle impostazioni locali.1
%n Trova la corrispondenza con un carattere di nuova riga
%t Trova la corrispondenza con zero o un carattere di spazio vuoto
%z
%Ez
%Oz
Offset dall'ora UTC nel formato [+|-]hh[mm]. Ad esempio, -0430 fa riferimento a 4 ore 30 minuti dietro l'ora UTC e 04 fa riferimento a 4 ore prima dell'ora UTC.
%Ez e %Oz (lettera O, non zero) analizzano tra : le ore e i minuti ed eseguono il rendering degli zere iniziali nel campo ora facoltativo1: [+|-]h[h][:mm]. Ad esempio, -04:30 fa riferimento a 4 ore 30 minuti dietro l'ora UTC e 4 fa riferimento a 4 ore prima dell'ora UTC.
%Z Abbreviazione o nome del fuso orario. Viene analizzata una singola parola. Questa parola può contenere solo caratteri alfanumerici dal set di caratteri di origine di base oppure uno di _, -/, o +.

Flag per tipo

Classe Identificatore/flag
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q sono solo per il formato, non l'analisi)
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

1L'implementazione è attualmente coerente con strftime in che anche se O (lettera O) e e vengono accettate, vengono ignorate. Ovvero, "%Od" viene interpretato come "%d".

get_leap_second_info

Restituisce un oggetto leap_second_info per l'ora specificata. In questo modo vengono fornite informazioni su se il tempo specificato si verifica durante un secondo inserimento bisestile. Fornisce inoltre il numero di secondi intercalari aggiunti tra il 1° gennaio 1970 e l'ora specificata. Un secondo inserimento saltato si verifica quando l'International Earth Rotation and Reference Systems Service (IERS) dichiara che un secondo salto verrà aggiunto (con conseguente 61 secondi) per tenere conto della differenza tra tempo atomico e tempo tracciato misurando la rotazione della terra, che è irregolare, e gradualmente rallenta.

Sintassi

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

Parametri

ut
utc_time Origine per cui ottenere .leap_second_info

Valore restituito

Restituisce un leap_second_info oggetto il cui membro is_leap_second è se ut si true trova durante un secondo inserimento positivo. In caso contrario, false. Il elapsed membro contiene la somma dei secondi intercalari tra la data 1970-01-01del periodo e ut. Se is_leap_second è true, il secondo salto a cui ut si fa riferimento da viene incluso nella elapsed somma.

get_tzdb

Ottiene la prima voce nell'elenco di database del fuso orario a livello di programma.

Sintassi

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

Valore restituito

Restituisce un riferimento al primo tzdb oggetto come se tramite una chiamata a get_tzdb_list().front(). Genera un'eccezione runtime_error se si tratta del primo riferimento al database del fuso orario e il database del fuso orario non può essere inizializzato.

Osservazioni:

Se non è ancora stato inizializzato, get_tzdb inizializza il database del fuso orario a livello di programma al primo accesso. Al momento dell'inizializzazione, il database è un tzdb_list oggetto che contiene un singolo oggetto inizializzato tzdb .

get_tzdb_list

Ottiene il database del fuso orario singleton a livello di programma.

Sintassi

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

Valore restituito

Restituisce un riferimento all'oggetto a livello tzdb_list di programma. Genera un'eccezione runtime_error se non può restituire un riferimento a un oggetto valido tzdb_list .

Osservazioni:

Se non è ancora stato inizializzato, get_tzdb_list inizializza il database del fuso orario a livello di programma al primo accesso. Al momento dell'inizializzazione, il database è un tzdb_list oggetto che contiene un singolo oggetto inizializzato tzdb . La get_tzdb_list funzione è thread-safe.

is_am

Predicato per se l'ora specificata si trova nella parte precedente al meridiem (AM) del giorno.

Sintassi

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

Parametri

h
Rappresentazione di origine hours nella notazione di 24 ore.

Valore restituito

Restituisce true se , in 0h <= h && h <= 11hcaso contrario false.

is_pm

Predicato per se l'ora specificata si trova nella parte post-meridiem (PM) del giorno.

Sintassi

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

Parametri

h
Rappresentazione di origine hours nella notazione di 24 ore.

Valore restituito

Restituisce true se , in 12h <= h && h <= 23hcaso contrario false.

locate_zone

Ottiene un oggetto fuso orario specificato dal nome del fuso orario.

Sintassi

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

Parametri

tz_name
Nome del fuso orario da restituire.

Valore restituito

Restituisce un puntatore a un oggetto time_zone come se da una chiamata a get_tzdb().locate_zone(tz_name). Genera un'eccezione runtime_error se non riesce a trovare il fuso orario specificato o se è il primo riferimento al database del fuso orario e il database del fuso orario non può essere inizializzato.

Osservazioni:

Se non è ancora stato inizializzato, locate_zone inizializza il database del fuso orario a livello di programma al primo accesso. Al momento dell'inizializzazione, il database è un tzdb_list oggetto che contiene un singolo oggetto inizializzato tzdb .

make12

Restituisce l'ora specificata nella notazione di 12 ore.

Sintassi

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

Parametri

h
Rappresentazione di origine hours nella notazione di 24 ore.

Valore restituito

Restituisce l'equivalente di 12 ore di h nell'intervallo [1h, 12h]. Il valore restituito non è specificato se h non è incluso nell'intervallo [0h, 23h].

make24

Restituisce l'ora specificata nella notazione di 24 ore.

Sintassi

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

Parametri

h
Rappresentazione di origine hours nella notazione di ora di 12 ore.

is_pm
La rappresentazione di origine hours è PM (se true) o AM (se false).

Valore restituito

Se is_pm è false, make24 restituisce l'equivalente di 24 ore di h nell'intervallo [0h, 11h], presupponendo che h rappresenti un'ora AM. In caso contrario, restituisce l'equivalente di 24 ore di h nell'intervallo [12h, 23h], presupponendo h che rappresenti un'ora PM. Il valore restituito non è specificato se h non è incluso nell'intervallo [1h, 12h].

reload_tzdb

Ricarica il database del fuso orario se sono disponibili informazioni aggiornate.

Sintassi

const tzdb& reload_tzdb();

Valore restituito

Dopo l'aggiornamento di un database del fuso orario, se presente, reload_tzdb restituisce un riferimento al primo tzdb oggetto come se fosse una chiamata a get_tzdb_list().front(). Genera un'eccezione runtime_error se non può restituire un riferimento a un oggetto valido tzdb .

Osservazioni:

Il database del fuso orario locale è quello fornito quando il programma accede per la prima volta al database, ad esempio tramite una chiamata a current_zone. Durante l'esecuzione del programma, l'implementazione può aggiornare il database del fuso orario. L'aggiornamento non influisce sul programma in alcun modo, a meno che il programma non chiami la reload_tzdb funzione. Il database del fuso orario potenzialmente aggiornato è denominato database del fuso orario remoto .

La reload_tzdb funzione controlla la versione del database del fuso orario locale e del database del fuso orario remoto. Se le versioni dei database locali e remoti sono uguali, non apporta modifiche. In caso contrario, viene eseguito il push del database remoto all'inizio dell'accesso tzdb_list da get_tzdb_list. Un aggiornamento non invalida puntatori, riferimenti o iteratori. La reload_tzdb funzione è thread-safe per le chiamate a get_tzdb_list().front() e get_tzdb_list().erase_after().

remote_version

Ottiene una stringa contenente la versione più recente del database remoto.

Sintassi

string remote_version();

Valore restituito

Restituisce un string oggetto contenente la versione più recente del database remoto.

round(duration)

Arrotonda l'oggetto specificato duration al più vicino rappresentabile duration nel tipo di destinazione.

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration dove treat_as_floating_point_v<typename ToDuration::rep> è false.

Rep
Tipo della rappresentazione interna dell'origine durationd.

Period
Tipo std::ratio che rappresenta il rapporto di un secondo al tipo di origine Rep , ovvero secondi per Rep.

d
Oggetto duration di origine.

Valore restituito

Restituisce l'oggetto rappresentabile più duration vicino nel ToDuration parametro d. Le relazioni passano al valore pari, vale a dire il valore t in cui t % 2 == 0.

Osservazioni:

round non partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di un durationoggetto e ToDuration abbia una rappresentazione integrale.

round(time_point)

Restituisce il punto di tempo più vicino rappresentabile nella destinazione duration al punto di tempo specificato.

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
round(const time_point<Clock, Duration>& tp);

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration dove treat_as_floating_point_v<typename ToDuration::rep> è false.

Clock
Tipo di clock comune del risultato e del parametro tpdi origine .

Duration
Tipo duration di tp.

tp
Oggetto time_point di origine.

Valore restituito

Restituisce il punto di tempo più vicino rappresentabile utilizzando ToDuration su tp. Le relazioni passano al valore pari, vale a dire il valore t in cui t % 2 == 0. In effetti, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));.

Osservazioni:

roundnon partecipa alla risoluzione dell'overload, a meno che il ToDuration tipo non sia un'istanza di .duration

time_point_cast

Esegue il cast di un time_point oggetto a un time_point oggetto con un tipo diverso duration .

Sintassi

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

Parametri

ToDuration
Tipo di destinazione duration . Vincolato come specializzazione di duration.

Clock
Tipo di clock comune del risultato e del parametro tpdi origine .

Duration
Tipo duration di tp.

tp
Oggetto time_point di cui eseguire il cast a un oggetto con il ToDuration tipo .

Valore restituito

Restituisce un time_point oggetto con un ToDuration tipo. In effetti, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Osservazioni:

A meno che ToDuration non sia una specializzazione di duration, questa funzione non partecipa alla risoluzione dell'overload.

Vedi anche

<chrono>
chrono Valori letterali
chrono Operatori
Classe duration
Classe time_point
Classe time_zone