<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 duration
d
.
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 duration
ist.
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 duration
d
.
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 d
ist.
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 SourceClock
der 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_clock
ist und Duration
zu dem er abgeleitet wirdfile_clock::duration
SourceClock
.
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 duration
d
.
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 duration
d
. 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 NaN
Unendlichkeit enthält oder zu groß für die Darstellung im Ziel duration
ist.
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 duration
ist.
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 duration
d
.
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 d
ist.
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_day
usw.
Wenn die Analyse fehlschlägt, is.setstate
wird (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
, wstring
für , u16string
für wchar_t
, für char16_t
und 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 nullptr
der 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 nullptr
der 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 N geändert wird, wird die Breite nur %Y auf 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 %d folgt 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.% Nj gibt 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, %1H z. 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, %1I z. 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, %3m z. 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 |
Jahr
Bezeichner | Beschreibung |
---|---|
%C , % NC , %EC |
Das Jahrhundert als Dezimalzahl.% NC gibt die maximale Anzahl der zu lesenden Zeichen an, %1N z. 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 | Ersatz |
---|---|
%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, %1g z. 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, %1G z. 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, %1V z. B. . Wenn N nicht angegeben ist, ist der Standardwert 2.%OV (Buchstabe O , nicht Null) analysiert die alternative Darstellung des Gebietsschemas.1 |
Allgemein
Bezeichner | Ersatz |
---|---|
%% |
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 ut
is_leap_second
true
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-01
und ut
dem . 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_list
per 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 duration
d
.
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 d
zurü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 ToDuration
tp
. 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
betriebspersonal
duration
-Klasse
time_point
-Klasse
time_zone
-Klasse