<chrono> -Funktionen

abs(duration)

Gibt zurück d , wenn d >= d.zero(); andernfalls wird zurückgegeben -d.

Syntax

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

Parameter

Rep
Der Typ der internen Darstellung der Quelle durationd.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

d
Das duration-Quellobjekt.

Rückgabewert

Der Absolutbetrag von d.

Beispiel: abs(duration)

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

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

ceil(duration)

Gibt den kleinsten darstellbaren duration Wert im Zieltyp zurück, der größer oder gleich dem angegebenen durationist.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Rep
Der Typ der internen Darstellung der Quelle durationd.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

d
Das duration-Quellobjekt.

Rückgabewert

Gibt den kleinsten duration darstellbaren Wert zurück ToDuration , der größer oder gleich dem Parameter dist.

Hinweise

ceil nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz einer duration.

ceil(time_point)

Gibt den kleinsten Zeitpunkt zurück, der im Ziel duration dargestellt werden kann, das größer oder gleich dem angegebenen Zeitpunkt ist.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Clock
Der allgemeine Takttyp des Ergebnisses und des Quellparameters tp.

Duration
Der duration Typ von tp.

tp
Das time_point-Quellobjekt.

Rückgabewert

Gibt den kleinsten Zeitpunkt zurück, der mit ToDuration größer oder gleich ist tp. Effektiv, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));.

Hinweise

ceil nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz einer duration.

clock_cast

Wandelt eine time_point für eine Uhr in eine Entsprechung time_point für eine andere Uhr um.

Syntax

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

Parameter

DestClock
Der Takttyp, in den konvertiert time_point werden soll.

Duration
Der duration von Ihnen angegebene Oder SourceClockder von Ihnen angegebene.

SourceClock
Der Takttyp, auf dem die time_point zu konvertierende Uhr basiert.

t
Die zu konvertierende time_point.

Rückgabewert

Ein time_point Äquivalent zu t, aber spezifisch für DestClock.

Hinweise

Die Parameter SourceClock und Duration können über den Abzug des Klassenvorlagenarguments abgeleitet werden, wenn sie nicht explizit übergeben werden. Beispielsweise wird angegebenclock_cast<utc_clock>(file_clock::now()), dass er abgeleitet file_clockist und Duration zu dem er abgeleitet wirdfile_clock::durationSourceClock.

Aus der folgenden Liste der wohlgeformten Uhrenkonvertierungen, die die wenigen Konvertierungsschritte erfordert, um von der SourceClock Bis zur DestClock Ausgewählten zu gelangen.

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

Weitere Informationen dazu, was clock_time_conversion funktioniert, finden Sie unter clock_time_conversion "Struktur".

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

Ruft das aktuelle Zeitzonenobjekt ab.

Syntax

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

Rückgabewert

Gibt einen Zeiger auf ein time_zone So als wäre durch einen Aufruf von get_tzdb().current_zone(). Es löst eine runtime_error Ausnahme aus, wenn sie der erste Verweis auf die Zeitzonendatenbank ist und die Zeitzonendatenbank nicht initialisiert werden kann.

duration_cast

Wandelt einen duration in den angegebenen Zieltyp duration um.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Rep
Der Typ der internen Darstellung der Quelle durationd.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

d
Das Quellobjekt duration , das in den Zieltyp duration umwandeln soll.

Rückgabewert

Ein Objekt vom Typ ToDuration , das die durationd. Sie wird bei Bedarf abgeschnitten, um in den Zieltyp einzupassen. Das Ergebnis der Umwandlung eines Gleitkommapunkts duration zu einem Integral duration ist nicht definiert, wenn die Quelle eine NaNUnendlichkeit enthält oder zu groß für die Darstellung im Ziel durationist.

Hinweise

Sie müssen nicht zum Konvertieren zwischen duration Typen verwendenduration_cast, wenn der Quellzeitraum genau durch den Zielzeitraum divisierbar ist, z. B. wenn Sie Minuten in Sekunden konvertieren. Außerdem müssen Sie sie nicht zwischen Gleitkommatypen duration konvertieren. Sie können beide Konvertierungen ausführen, indem Sie gewöhnliche Umwandlungen oder die duration Konstruktoren verwenden.

duration_cast nimmt nicht an der Überladungsauflösung teil, es sei denn, es handelt sich um ToDuration eine Instanz von duration. Es werden alle Konvertierungen mithilfe von impliziten Konvertierungen ausgeführt.It does all conversions by using static_cast instead of implicit conversions. Multiplikationen und Divisionen werden möglichst vermieden. Wenn der Compiler beispielsweise weiß, dass das gemeinsame Verhältnis der Ziel- und Quellperioden einen Zähler oder Nenner von 1 aufweist. Berechnungen erfolgen in der breitesten verfügbaren Art und werden dann nach Abschluss des Ergebnisses in static_cast den Ergebnistyp konvertiert.

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

Gibt den größten darstellbaren duration Wert im Zieltyp zurück, der kleiner als oder gleich dem angegebenen durationist.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Rep
Der Typ der internen Darstellung der Quelle durationd.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

d
Das duration-Quellobjekt.

Rückgabewert

Gibt den größten duration darstellbaren Wert zurück, der ToDuration kleiner oder gleich dem Parameter dist.

Hinweise

floor nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz einer duration.

floor(time_point)

Gibt den größten Zeitpunkt zurück, der im Ziel duration dargestellt werden kann, das kleiner oder gleich dem angegebenen Zeitpunkt ist.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Clock
Der allgemeine Takttyp des Ergebnisses und des Quellparameters tp.

Duration
Der duration Typ von tp.

tp
Das time_point-Quellobjekt.

Rückgabewert

Gibt den größten Zeitpunkt ToDuration zurück, der mit weniger als oder gleich ist tp. Effektiv, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));.

Hinweise

floor nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz einer duration.

from_stream

Analysieren Sie den Eingabedatenstrom mithilfe des angegebenen Formats in einen der std::chrono Zeit- oder Intervalltypen, z day. B. , month, month_day, weekday, year, year_month, year_month_dayusw.

Wenn die Analyse fehlschlägt, is.setstatewird (ios_base::failbit) aufgerufen, und der Ausgabeparameter wird nicht geändert.

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

Vorlagenparameter

Alloc
Der Typ, der das Allocator-Objekt darstellt, das die Zuordnung und Zuordnung des Speichers der Zeichenfolge behandelt.

charT
Der Datentyp eines einzelnen Zeichens, das aus dem Datenstrom gelesen und in der Zeichenfolge gespeichert werden soll. Die C++-Standardbibliothek bietet Spezialisierungen dieser Klassenvorlage mit den Typdefinitionen string für Elemente vom Typ char, wstringfür , u16string für wchar_t, für char16_tund u32string für char32_t.

traits
charT Beschreibt Attribute für die basic_string und basic_istream Spezialisierung.

Rep
Der interne Darstellungstyp eines duration Typs.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

Duration
Der Typ, der duration für die Zeitspezialisierung verwendet wird.

Parameter

abbrev
Wenn abbrev dies nicht nullptrder Fall ist und der Formatbezeichner %Z angegeben ist und die Analyse erfolgreich ist, enthält sie abbrev den analysierten Wert.

d
Wenn die Analyse erfolgreich ist, enthält sie den analysierten Tag, wenn die Funktion zurückgegeben wird.

dur
Die duration analysierten Datenströme.

fmt
Die Zum Abgleichen der Eingabe verwendete Formatzeichenfolge. Siehe Analyseformatzeichenfolgen für die Liste der Analyseformatierungsoptionen.

ft
Die file_time analysierten Datenströme.

gt
Die gps_time analysierten Datenströme.

is
Der zu analysierende Eingabedatenstrom.

lt
Die local_time analysierten Datenströme.

m
Die month analysierten Datenströme.

md
Die month_day analysierten Datenströme.

offset
Wenn offset dies nicht nullptrder Fall ist, und der Formatbezeichner %z oder die geänderte Variante, z %Ez . B. oder %0z die angegebene Variante, und die Analyse erfolgreich ist, zeigt sie offset auf den analysierten Wert.

st
Die sys_time analysierten Datenströme.

tt
Die tai_time analysierten Datenströme.

ut
Die utc_time analysierten Datenströme.

wd
Die weekday analysierten Datenströme.

y
Die year analysierten Datenströme.

ym
Die year_month analysierten Datenströme.

ymd
Die year_month_day analysierten Datenströme.

Rückgabewert

Der Eingabedatenstrom, is

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

Hinweise

7) Wird %Z dieser Wert verwendet und erfolgreich analysiert, wird dieser Wert zugewiesen *abbrev , wenn abbrev er nicht null ist. Wenn %z (oder eine geänderte Variante) verwendet und erfolgreich analysiert wird, wird dieser Wert zugewiesen *offset , wenn offset es sich nicht um Null handelt.

12) Wird %Z dieser Wert verwendet und erfolgreich analysiert, wird dieser Wert zugewiesen *abbrev , wenn abbrev er nicht null ist. Wenn %z (oder eine geänderte Variante) verwendet und erfolgreich analysiert wird, wird dieser Wert zugewiesen *offset , wenn offset es sich nicht um Null handelt.

from_stream Formatzeichenfolgen

Das Format kann eine der folgenden Zeichenfolgen sein:

Datum

Bezeichner Beschreibung
%D Entspricht %m/%d/%y.
%F
%NF
Entspricht %Y-%m-%d. Wenn sie mit einer Breite Ngeändert wird, wird die Breite nur %Yauf angewendet.
%x
%Ex
Die Datumsdarstellung des Gebietsschemas.
%Ex analysiert die alternative Datumsdarstellung des Gebietsschemas.1

Tag

Bezeichner Beschreibung
%d
%Od
%Nd
%e
%Oe
%Ne
Der Tag des Monats als Dezimalzahl.
%Nd gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %1d. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%Od (Buchstabe O, nicht Null) interpretiert die alternative Darstellung des Gebietsschemas für den Tag des Monats.1
%e%d entspricht und kann wie %dfolgt geändert werden.1

Wochentag

Bezeichner Beschreibung
%a
%A
Der Name des Gebietsschemas mit vollständiger oder abgekürzter Groß-/Kleinschreibung wird nicht beachtet.
%A entspricht %a.
%u
%Nu
Der ISO-Wochentag als Dezimalzahl (1-7), wobei Montag 1 ist.
%Nu gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %2u. . Wenn N nicht angegeben ist, ist der Standardwert 1. Führende Nullen sind zulässig, aber nicht erforderlich.
%w
%Nw
%Ow
Der Wochentag als Dezimalzahl (0-6), wobei Sonntag 0 ist.
%Nw gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %2w. . Wenn N nicht angegeben ist, ist der Standardwert 1.
Führende Nullen sind zulässig, aber nicht erforderlich.
%Ow (Buchstabe O, nicht Null) interpretiert die alternative Darstellung des Gebietsschemas.1

Woche/Tag des Jahres

Bezeichner Beschreibung
%j
%Nj
Wenn der typ, der formatiert wird, eine Spezialisierung der Dauer ist, ist die Dezimalzahl von Tagen ohne Abstand. Andernfalls wird der Tag des Jahres als Dezimalzahl angegeben. Jan 1 ist 001 Wenn das Ergebnis weniger als drei Ziffern ist, wird es mit 0 (Null) bis drei Ziffern aufgefüllt.
%Njgibt die maximale Anzahl der zu lesenden Zeichen an, z. B %2j. . Wenn N nicht angegeben ist, ist der Standardwert 3. Führende Ziffern sind zulässig, sind jedoch nicht erforderlich.
%U
%NU
%OU
Die Wochenzahl des Jahres als Dezimalzahl. Der erste Sonntag des Jahres ist der erste Wochentag 01. Tage desselben Jahres vor dieser Woche liegen in der Woche 00. Wenn das Ergebnis eine einzelne Ziffer ist, wird es mit 0 dem Präfix (Null) versehen.
%NU gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %2U. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%OU (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1
%W
%NW
%OW
Die Wochenzahl des Jahres als Dezimalzahl. Der erste Montag des Jahres ist der erste Wochentag 01. Tage desselben Jahres vor dieser Woche liegen in der Woche 00.
Wenn das Ergebnis eine einzelne Ziffer ist, wird es mit 0 dem Präfix (Null) versehen.
%NW gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %2W. . Wenn N nicht angegeben ist, ist der Standardwert 1.
Führende Nullen sind zulässig, aber nicht erforderlich.%OW (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1

Uhrzeit

Bezeichner Beschreibung
%H
%NH
%OH
Die Stunde (24-Stunden-Uhr) als Dezimalzahl. Wenn das Ergebnis eine einzelne Ziffer ist, wird sie mit einem 0 Präfix (Null) versehen.
%NH gibt die maximale Anzahl der zu lesenden Zeichen an, %1Hz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%OH (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1
%I
%NI
%OI
Die Stunde (12-Stunden-Uhr) als Dezimalzahl. Wenn das Ergebnis eine einzelne Ziffer ist, wird es mit 0 dem Präfix (Null) versehen.
%NI gibt die maximale Anzahl der zu lesenden Zeichen an, %1Iz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%OI (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1
%M
%NM
%OM
Die Minuten als Dezimalzahl. Wenn das Ergebnis eine einzelne Ziffer ist, wird es mit 0 dem Präfix (Null) versehen.
%NM gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %3M. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%OM (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1
%S
%NS
%OS
Sekunden als Dezimalzahl. Wenn die Anzahl der Sekunden kleiner als 10 ist, wird das Ergebnis mit 0 dem Präfix (Null) versehen. Wenn die Genauigkeit der Eingabe nicht exakt mit Sekunden dargestellt werden kann, ist das Format eine dezimale Gleitkommazahl mit einem festen Format. Sie weist eine Mikrosekundengenauigkeit auf, wenn die Funktion die Gleitkommakomma-Dezimal sekunden nicht innerhalb von 18 Dezimalstellen konvertieren kann. Andernfalls entspricht die Genauigkeit der Eingabe. Das Zeichen für den Dezimalkommawert wird entsprechend dem Gebietsschema lokalisiert.
%NS gibt die maximale Anzahl der zu lesenden Zeichen an, z. B %3S. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%OS (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1
%p Das Gebietsschema entspricht den AM/PM-Bezeichnungen, die einem 12-Stunden-Format zugeordnet sind.
%r Die 12-Stunden-Uhrzeit des Gebietsschemas.
%R Entspricht %H:%M.
%T Entspricht "%H:%M:%S".
%X, %EX Die Zeitdarstellung des Gebietsschemas.
%EX analysiert die Zeitdarstellung des alternativen Gebietsschemas.1

Monat

Bezeichner Beschreibung
%b, %B, %h Der vollständige oder abgekürzte Monatsname des Gebietsschemas. Wenn der Wert keinen gültigen Monat enthält, wird eine format_error Ausnahme ausgelöst.
%h entspricht %b.
%m, %Nm, %Om Der Monat als Dezimalzahl. Jan ist 1.
%Nm gibt die maximale Anzahl der zu lesenden Zeichen an, %3mz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%Om (Buchstabe O, nicht Null) interpretiert die alternative Darstellung des Gebietsschemas.1

Year

Bezeichner Beschreibung
%C, %NC, %EC Das Jahrhundert als Dezimalzahl.
%NC gibt die maximale Anzahl der zu lesenden Zeichen an, %1Nz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2. Führende Nullen sind zulässig, aber nicht erforderlich.
%EC interpretiert die alternative Darstellung des Gebietsschemas des Jahrhunderts.
%y, %Ny, %Ey, %Oy Die letzten beiden Dezimalstellen des Jahres. Wenn das Jahrhundert nicht anders angegeben ist (z. B. unter Verwendung %C), werden werte im Bereich [69, 99] davon ausgegangen, dass sie auf die Jahre 1969 bis 1999 verweisen, und Werte im Bereich [00, 68] werden davon ausgegangen, dass sie auf die Jahre 2000 bis 2068 verweisen.
%Ny gibt die maximale Anzahl der zu lesenden Zeichen an. Wenn N nicht angegeben ist, ist der Standardwert 2.
Führende Nullen sind zulässig, aber nicht erforderlich.
%Ey und %Oy (Buchstabe O, nicht Null) interpretieren die alternative Darstellung des Gebietsschemas.1
%Y, %NY, %EY, Das Jahr als Dezimalzahl. Wenn das Ergebnis weniger als vier Ziffern ist, wird es mit 0 (Null) bis vier Ziffern aufgefüllt.
%NY gibt die maximale Anzahl der zu lesenden Zeichen an. Wenn N nicht angegeben ist, ist der Standardwert 4.
%EY analysiert die alternative Jahresdarstellung des Gebietsschemas.1

ISO 8601 wochenbasiertes Jahr

In ISO 8601 beginnen Wochen mit Montag. Die erste Woche des Jahres muss den 4. Januar enthalten und den ersten Donnerstag des Jahres enthalten.

Bezeichner Ersetzung
%g
%Ng
Die letzten beiden Dezimalziffern des ISO-wochenbasierten Jahres. Wenn das Ergebnis eine einzelne Ziffer ist, wird das 0 Präfix (Null) vorangestellt. %Ng gibt die maximale Anzahl der zu lesenden Zeichen an, %1gz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.
%G
%NG
Das ISO-wochenbasierte Jahr als Dezimalzahl. Wenn das Ergebnis weniger als vier Ziffern ist, wird es mit 0 (Null) bis vier Ziffern aufgefüllt. %NG gibt die maximale Anzahl der zu lesenden Zeichen an, %1Gz. B. . Wenn N nicht angegeben ist, ist der Standardwert 4.
%V
%OV
%NV
Die wochenbasierte ISO-Wochennummer als Dezimalzahl. Wenn das Ergebnis eine einzelne Ziffer ist, wird es mit 0 dem Präfix (Null) versehen. %NV gibt die maximale Anzahl der zu lesenden Zeichen an, %1Vz. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.
%OV (Buchstabe O, nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1

Allgemein

Bezeichner Ersetzung
%% Entspricht dem Zeichen %.
%c
%Ec
Die Datums- und Uhrzeitdarstellung des Gebietsschemas.
%Ec interpretiert die alternative Darstellung von Datum und Uhrzeit des Gebietsschemas.1
%n Entspricht einem neuen Zeilenzeichen.
%t Entspricht null oder einem Leerzeichen.
%z
%Ez
%Oz
Der Offset von UTC im Format [+|-]hh[mm]. bezieht sich beispielsweise -0430 auf 4 Stunden 30 Minuten hinter UTC und 04 bezieht sich auf 4 Stunden vor UTC.
%Ez und %Oz (Buchstabe O, nicht Null) analysieren eine : zwischen den Stunden und Minuten und rendern führende Nullen im Stundenfeld optional1: [+|-]h[h][:mm]. bezieht sich beispielsweise -04:30 auf 4 Stunden 30 Minuten hinter UTC, und 4 bezieht sich auf 4 Stunden vor UTC.
%Z Die Abkürzung oder der Name der Zeitzone. Ein einzelnes Wort wird analysiert. Dieses Wort kann nur alphanumerische Zeichen aus dem grundlegenden Quellzeichensatz oder eines von _, /, , -oder .+

Kennzeichnungen nach Typ

Klasse Bezeichner/Kennzeichnung
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q nur für formatieren, nicht analysieren)
file_time Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, 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, 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, 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, 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, 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

1Die Implementierung ist derzeit mit strftime konsistent, obwohl O (Buchstabe O) e und akzeptiert werden, werden sie ignoriert. Das heißt, "%Od" wird als "%d"interpretiert.

get_leap_second_info

Gibt eine leap_second_info für die angegebene Zeit zurück. Dies enthält Informationen dazu, ob die angegebene Zeit während einer Einfügemarke des zweiten Schaltvorgangs auftritt. Es stellt auch die Anzahl der Schaltsekunden bereit, die zwischen dem 1. Januar 1970 und der angegebenen Zeit hinzugefügt wurden. Wenn der International Earth Rotation and Reference Systems Service (IERS) erklärt, dass ein Zweiter Sprung hinzugefügt wird (was zu einer 61 Sekunden langen Minute führt), um den Unterschied zwischen Atomzeit und Zeit zu berücksichtigen, indem die Drehung der Erde gemessen wird, die unregelmäßig ist und allmählich verlangsamt wird.

Syntax

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

Parameter

ut
Die Quelle utc_time , für die dies leap_second_info abgerufen werden soll.

Rückgabewert

Gibt ein leap_second_info Element zurück, dessen Element utis_leap_secondtrue bei der zweiten Einfügung eines positiven Schaltvorgangs liegt; andernfalls . false Das elapsed Element enthält die Summe der Schaltsekunden zwischen dem Epochendatum 1970-01-01und utdem . Wenn is_leap_second ja true, wird der schalte zweite Bezug ut in die elapsed Summe einbezogen.

get_tzdb

Ruft den ersten Eintrag in der programmweiten Zeitzonendatenbankliste ab.

Syntax

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

Rückgabewert

Gibt einen Verweis auf das erste tzdb Objekt zurück, als ob durch einen Aufruf von get_tzdb_list().front(). Es löst eine runtime_error Ausnahme aus, wenn sie der erste Verweis auf die Zeitzonendatenbank ist und die Zeitzonendatenbank nicht initialisiert werden kann.

Hinweise

Wenn sie noch nicht initialisiert wurde, get_tzdb initialisiert sie die programmweite Zeitzonendatenbank beim ersten Zugriff. Bei der Initialisierung ist die Datenbank ein tzdb_list einzelnes initialisiertes tzdb Objekt.

get_tzdb_list

Ruft die programmweite Singleton-Zeitzonendatenbank ab.

Syntax

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

Rückgabewert

Gibt einen Verweis auf das programmweite tzdb_list Objekt zurück. Es löst eine runtime_error Ausnahme aus, wenn kein Verweis auf ein gültiges tzdb_list Objekt zurückgegeben werden kann.

Hinweise

Wenn sie noch nicht initialisiert wurde, get_tzdb_list initialisiert sie die programmweite Zeitzonendatenbank beim ersten Zugriff. Bei der Initialisierung ist die Datenbank ein tzdb_list einzelnes initialisiertes tzdb Objekt. Die get_tzdb_list Funktion ist threadsicher.

is_am

Prädikat für die Angabe, ob sich die angegebene Stunde im Ante-Meridiem (AM)-Teil des Tages befindet.

Syntax

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

Parameter

h
Die Quelldarstellung hours in der 24-Stunden-Schreibweise.

Rückgabewert

Gibt zurück true , wenn 0h <= h && h <= 11h, andernfalls false.

is_pm

Prädikat für die Angabe, ob sich die angegebene Stunde im Post-Meridiem (PM)-Teil des Tages befindet.

Syntax

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

Parameter

h
Die Quelldarstellung hours in der 24-Stunden-Schreibweise.

Rückgabewert

Gibt zurück true , wenn 12h <= h && h <= 23h, andernfalls false.

locate_zone

Ruft ein Zeitzonenobjekt ab, das durch den Namen der Zeitzone angegeben wird.

Syntax

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

Parameter

tz_name
Der Name der zurückzugebenden Zeitzone.

Rückgabewert

Gibt einen Zeiger auf ein time_zone So als wäre durch einen Aufruf von get_tzdb().locate_zone(tz_name). Es löst eine runtime_error Ausnahme aus, wenn sie die angegebene Zeitzone nicht finden kann oder wenn sie der erste Verweis auf die Zeitzonendatenbank ist und die Zeitzonendatenbank nicht initialisiert werden kann.

Hinweise

Wenn sie noch nicht initialisiert wurde, locate_zone initialisiert sie die programmweite Zeitzonendatenbank beim ersten Zugriff. Bei der Initialisierung ist die Datenbank ein tzdb_list einzelnes initialisiertes tzdb Objekt.

make12

Gibt die angegebene Stunde in 12-Stunden-Schreibweise zurück.

Syntax

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

Parameter

h
Die Quelldarstellung hours in der 24-Stunden-Schreibweise.

Rückgabewert

Gibt das 12-Stunden-Äquivalent des h Bereichs [1h, 12h]zurück. Der Rückgabewert ist nicht angegeben, wenn h er nicht im Bereich enthalten [0h, 23h]ist.

make24

Gibt die angegebene Stunde in 24-Stunden-Schreibweise zurück.

Syntax

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

Parameter

h
Die Quelldarstellung hours in 12-Stunden-Schreibweise.

is_pm
Die Quelldarstellung hours ist PM (wenn true) oder AM (wenn).false

Rückgabewert

Wenn is_pm dies der Fall ist false, make24 gibt das 24-Stunden-Äquivalent des h Bereichs [0h, 11h]zurück, vorausgesetzt h , dass es sich um eine AM-Stunde handelt. Andernfalls wird das 24-Stunden-Äquivalent des h Bereichs [12h, 23h]zurückgegeben, vorausgesetzt h , sie stellt eine PM-Stunde dar. Der Rückgabewert ist nicht angegeben, wenn h er nicht im Bereich enthalten [1h, 12h]ist.

reload_tzdb

Lädt die Zeitzonendatenbank neu, wenn aktualisierte Informationen verfügbar sind.

Syntax

const tzdb& reload_tzdb();

Rückgabewert

Nachdem eine Aktualisierung der Zeitzonendatenbank erfolgt ist, wird , falls vorhanden, reload_tzdb ein Verweis auf das erste tzdb Objekt zurückgegeben, als ob durch einen Aufruf von get_tzdb_list().front(). Es löst eine runtime_error Ausnahme aus, wenn kein Verweis auf ein gültiges tzdb Objekt zurückgegeben werden kann.

Hinweise

Die lokale Zeitzonendatenbank ist die Datenbank, die angegeben wird, wenn das Programm zuerst auf die Datenbank zugreift, z. B. durch einen Aufruf von current_zone. Während das Programm ausgeführt wird, kann die Implementierung die Zeitzonendatenbank aktualisieren. Das Update wirkt sich nicht auf das Programm aus, es sei denn, das Programm ruft die reload_tzdb Funktion auf. Die potenziell aktualisierte Zeitzonendatenbank wird als Remote-Zeitzonendatenbank bezeichnet.

Die reload_tzdb Funktion überprüft die Version der lokalen Zeitzonendatenbank und der Remote-Zeitzonendatenbank. Wenn die Versionen der lokalen und Remotedatenbanken identisch sind, werden keine Änderungen vorgenommen. Andernfalls wird die Remotedatenbank an die Vorderseite des tzdb_list Zugriffs get_tzdb_listper Push verschoben. Bei einer Aktualisierung werden keine Zeiger, Verweise oder Iteratoren ungültig. Die reload_tzdb Funktion ist threadsicher für Aufrufe get_tzdb_list().front() und get_tzdb_list().erase_after().

remote_version

Ruft eine Zeichenfolge ab, die die neueste Remotedatenbankversion enthält.

Syntax

string remote_version();

Rückgabewert

Gibt einen string Wert zurück, der die neueste Remotedatenbankversion enthält.

round(duration)

Rundet den angegebenen duration Wert auf den nächstgelegenen darstellbaren duration Wert im Zieltyp ab.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung, duration wo treat_as_floating_point_v<typename ToDuration::rep> ist false.

Rep
Der Typ der internen Darstellung der Quelle durationd.

Period
Ein Typ, der das Verhältnis von einer Sekunde zum Quelltyp Rep darstellt (d. a. std::ratio Sekunden pro Rep).

d
Das duration-Quellobjekt.

Rückgabewert

Gibt das nächste duration representable in ToDuration den Parameter dzurück. Verknüpfungen werden mit dem geraden Wert verknüpft, d. h. dem Wert t , in dem t % 2 == 0.

Hinweise

round nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz eines duration, und ToDuration hat eine integrale Darstellung.

round(time_point)

Gibt den nächstgelegenen Zeitpunkt zurück, der im Ziel duration an den angegebenen Zeitpunkt dargestellt werden kann.

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung, duration wo treat_as_floating_point_v<typename ToDuration::rep> ist false.

Clock
Der allgemeine Takttyp des Ergebnisses und des Quellparameters tp.

Duration
Der duration Typ von tp.

tp
Das time_point-Quellobjekt.

Rückgabewert

Gibt den nächstgelegenen Zeitpunkt zurück, der mithilfe von ToDurationtp. Verknüpfungen werden mit dem geraden Wert verknüpft, d. h. dem Wert t , in dem t % 2 == 0. Effektiv, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));.

Hinweise

round nimmt nicht an der Überladungsauflösung teil, es sei denn, der ToDuration Typ ist eine Instanz einer duration.

time_point_cast

Wandelt ein time_point Objekt in ein time_point Objekt um, das einen anderen duration Typ aufweist.

Syntax

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

Parameter

ToDuration
Der Zieltyp duration . Eingeschränkt als Spezialisierung von duration.

Clock
Der allgemeine Takttyp des Ergebnisses und des Quellparameters tp.

Duration
Der duration Typ von tp.

tp
Das time_point Objekt, das in ein Objekt umwandeln soll, das den ToDuration Typ aufweist.

Rückgabewert

Gibt ein time_point Objekt zurück, das einen ToDuration Typ aufweist. Effektiv, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Hinweise

Es sei denn ToDuration , es ist eine Spezialisierung von duration, diese Funktion nimmt nicht an der Überladungsauflösung teil.

Siehe auch

<chrono>
chrono Literale
chrono Operatoren
duration-Klasse
time_point-Klasse
time_zone-Klasse