Dela via


<chrono> funktioner

abs(duration)

Returnerar d om d >= d.zero(); annars returneras -d.

Syntax

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

Parametrar

Rep
Typen av intern representation av källan durationd.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

d
Källobjektet duration.

Returvärde

Det absoluta värdet för d.

Exempel: abs(duration)

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

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

ceil(duration)

Returnerar den minsta duration i måltypen som är större än eller lika med den angivna duration.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Rep
Typen av intern representation av källan durationd.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

d
Källobjektet duration.

Returvärde

Returnerar den minsta duration som kan representeras i ToDuration som är större än eller lika med parametern d.

Anmärkningar

ceil deltar inte i överlagringsmatchning om inte ToDuration typ är en instans av en duration.

ceil(time_point)

Returnerar den minsta tidspunkten som kan representeras i målet duration som är större än eller lika med den angivna tidpunkten.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Clock
Den vanliga klocktypen för resultatet och källparametern tp.

Duration
Den duration typen av tp.

tp
Källobjektet time_point.

Returvärde

Returnerar den minsta tidspunkten som kan representeras med ToDuration som är större än eller lika med tp. I praktiken time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));.

Anmärkningar

ceil deltar inte i överlagringsmatchning om inte ToDuration typ är en instans av en duration.

clock_cast

Konverterar en time_point för en klocka till en motsvarande time_point för en annan klocka.

Syntax

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

Parametrar

DestClock
Klocktypen som time_point konverteras till.

Duration
duration för SourceClockeller en som du anger.

SourceClock
Klocktypen som time_point att konvertera baseras på.

t
Den time_point att konvertera.

Returvärde

En time_point som motsvarar t, men som är specifik för DestClock.

Anmärkningar

Parametrarna SourceClock och Duration kan härledas via argumentavdrag för klassmallar när de inte uttryckligen skickas. Med clock_cast<utc_clock>(file_clock::now())kan SourceClock till exempel härledas att vara file_clockoch Duration är file_clock::duration.

Från följande lista över välformulerad klockkonvertering väljs den som kräver minst konverteringssteg för att hämta från SourceClock till DestClock.

clock_time_conversion<DestClock, SourceClock>{}(t)

clock_time_conversion<DestClock, system_clock>{}(
	clock_time_conversion<system_clock, SourceClock>{}(t))

clock_time_conversion<DestClock, utc_clock>{}(
	clock_time_conversion<utc_clock, SourceClock>{}(t))

clock_time_conversion<DestClock, utc_clock>{}(
	clock_time_conversion<utc_clock, system_clock>{}(
		clock_time_conversion<system_clock, SourceClock>{}(t)))

clock_time_conversion<DestClock, system_clock>{}(
	clock_time_conversion<system_clock, utc_clock>{}(
		clock_time_conversion<utc_clock, SourceClock>{}(t)))

Mer information om vad clock_time_conversion gör finns i clock_time_conversion struct.

Exempel 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

Hämtar det aktuella tidszonsobjektet.

Syntax

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

Returvärde

Returnerar en pekare till en time_zone som vid ett anrop till get_tzdb().current_zone(). Det genererar ett runtime_error undantag om det är den första referensen till tidszonsdatabasen och tidszonsdatabasen inte kan initieras.

duration_cast

Omvandlar en duration till den angivna måltypen duration.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Rep
Typen av intern representation av källan durationd.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

d
Källan duration objekt som ska omvandlas till måltypen duration.

Returvärde

Ett objekt av typen ToDuration som representerar durationd. Den trunkeras om det behövs för att passa in i måltypen. Resultatet av att en flyttal duration till en integrerad duration är odefinierat om källan innehåller en NaN, en oändlighet eller är för stor för representation i målet duration.

Anmärkningar

Du behöver inte använda duration_cast för att konvertera mellan duration typer när källperioden är exakt delbar efter målperioden, till exempel när du konverterar minuter till sekunder. Du behöver inte heller det för att konvertera mellan flyttal duration typer. Du kan göra båda konverteringarna med vanliga gjutningar eller duration konstruktorer.

duration_cast deltar inte i överbelastningsmatchning om inte ToDuration är en instans av duration. Den utför alla konverteringar med hjälp av static_cast i stället för implicita konverteringar. Multiplikationer och divisioner undviks om möjligt. När kompilatorn till exempel vet att det gemensamma förhållandet mellan mål- och källperioderna har en täljare eller nämnare på 1. Beräkningar görs i den bredaste tillgängliga typen och konverteras sedan som om static_cast till resultattypen när den är klar.

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

Returnerar den största duration i måltypen som är mindre än eller lika med den angivna duration.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Rep
Typen av intern representation av källan durationd.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

d
Källobjektet duration.

Returvärde

Returnerar den största duration som kan representeras i ToDuration som är mindre än eller lika med parametern d.

Anmärkningar

floor deltar inte i överlagringsmatchning om inte ToDuration typ är en instans av en duration.

floor(time_point)

Returnerar den största tidspunkten som kan representeras i målet duration som är mindre än eller lika med den angivna tidpunkten.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Clock
Den vanliga klocktypen för resultatet och källparametern tp.

Duration
Den duration typen av tp.

tp
Källobjektet time_point.

Returvärde

Returnerar den största tidspunkten som kan representeras med ToDuration som är mindre än eller lika med tp. I praktiken time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));.

Anmärkningar

floor deltar inte i överlagringsmatchning om inte ToDuration typ är en instans av en duration.

from_stream

Parsa indataströmmen till någon av std::chrono tids- eller intervalltyperna, till exempel day, month, month_day, weekday, year, year_month, year_month_dayoch så vidare, med det angivna formatet.

Om parsningen misslyckas anropas is.setstate(ios_base::failbit) och utdataparametern ändras inte.

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

Mallparametrar

Alloc
Den typ som representerar allokeringsobjektet som hanterar strängens allokering och frigöring av minne.

charT
Datatypen för ett enskilt tecken som ska läsas från strömmen och lagras i strängen. C++-standardbiblioteket innehåller specialiseringar av den här klassmallen, med de typdefinitioner som string för element av typen char, wstring, för wchar_t, u16string för char16_toch u32string för char32_t.

traits
Beskriver charT attribut för basic_string och basic_istream specialisering.

Rep
Den interna representationstypen för en duration typ.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

Duration
Den duration typ som används för tidsspecialisering.

Parametrar

abbrev
Om abbrev inte är nullptroch formatspecificeraren %Z anges, och parsningen lyckas, innehåller abbrev det parsade värdet.

d
Om parsningen lyckas innehåller den parsade dagen när funktionen returnerar.

dur
Den duration parsad från strömmen.

fmt
Formatsträngen som används för att matcha indata. Se Parsa formatsträngar för listan med formateringsalternativ för parsning.

ft
Den file_time parsad från strömmen.

gt
Den gps_time parsad från strömmen.

is
Indataströmmen som ska parsas.

lt
Den local_time parsad från strömmen.

m
Den month parsad från strömmen.

md
Den month_day parsad från strömmen.

offset
Om offset inte är nullptroch formatspecificeraren %z eller modifierad variant, till exempel %Ez eller %0z anges, och parsningen lyckas, pekar offset på det parsade värdet.

st
Den sys_time parsad från strömmen.

tt
Den tai_time parsad från strömmen.

ut
Den utc_time parsad från strömmen.

wd
Den weekday parsad från strömmen.

y
Den year parsad från strömmen.

ym
Den year_month parsad från strömmen.

ymd
Den year_month_day parsad från strömmen.

Returvärde

Indataströmmen is

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

Anmärkningar

7) Om %Z används och parsas, tilldelas värdet till *abbrev om abbrev inte är null. Om %z (eller en modifierad variant) används och parsas, tilldelas värdet till *offset om offset inte är null.

12) Om %Z används och parsas, tilldelas värdet till *abbrev om abbrev inte är null. Om %z (eller en modifierad variant) används och parsas, tilldelas värdet till *offset om offset inte är null.

from_stream formatsträngar

Formatet kan vara en av dessa strängar:

Datum

Specificerare Beskrivning
%D Motsvarar %m/%d/%y
%F
% NF
Motsvarar %Y-%m-%d. Om den ändras med en bredd Ntillämpas bredden endast på %Y.
%x
%Ex
Språkvariantens datumrepresentation.
%Ex parsar språkvariantens alternativa datumrepresentation.1

Dag

Specificerare Beskrivning
%d
%Od
% Nd
%e
%Oe
% Ne
Dagen i månaden som ett decimaltal.
% Nd anger det maximala antalet tecken som ska läsas, till exempel %1d. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%Od (bokstaven O, inte noll) tolkar språkvariantens alternativa representation av dagen i månaden.1
%e motsvarar %d och kan ändras som %d.1

Veckodag

Specificerare Beskrivning
%a
%A
Språkvariantens fullständiga eller förkortade skiftlägesokänsliga veckodag.
%A motsvarar %a
%u
% Nu
ISO-veckodagen som ett decimaltal (1–7), där måndagen är 1.
% Nu anger det maximala antalet tecken som ska läsas, till exempel %2u. Om N inte anges är standardvärdet 1. Inledande nollor tillåts men krävs inte.
%w
% Nw
%Ow
Veckodagen som ett decimaltal (0–6), där söndagen är 0.
% Nw anger det maximala antalet tecken som ska läsas, till exempel %2w. Om N inte anges är standardvärdet 1.
Inledande nolla tillåts men krävs inte.
%Ow (bokstaven O, inte noll) tolkar språkvariantens alternativa representation.1

Vecka/dag på året

Specificerare Beskrivning
%j
% Nj
Om den typ som formateras är en specialisering av varaktighet, decimalantalet dagar utan utfyllnad. I annat fall dagen på året som ett decimaltal. Jan 1 är 001. Om resultatet är färre än tre siffror är det vänster vadderat med 0 (noll) till tre siffror.
% Njanger det maximala antalet tecken som ska läsas, till exempel %2j. Om N inte anges är standardvärdet 3. Inledande siffror tillåts men krävs inte.
%U
% NU
%OU
Årets veckonummer som ett decimaltal. Den första söndagen på året är den första veckodagen 01. Dagar samma år före den veckan är i vecka 00. Om resultatet är en ensiffrig prefix med 0 (noll).
% NU anger det maximala antalet tecken som ska läsas, till exempel %2U. Om N inte anges är standardvärdet 2.
Inledande nollor tillåts men krävs inte.
%OU (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1
%W
% NW
%OW
Årets veckonummer som ett decimaltal. Den första måndagen på året är den första veckodagen 01. Dagar samma år före den veckan är i vecka 00.
Om resultatet är en ensiffrig prefix med 0 (noll).
% NW anger det maximala antalet tecken som ska läsas, till exempel %2W. Om N inte har angetts är standardvärdet 1
Inledande nollor tillåts men krävs inte. %OW (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1

Tid på dagen

Specificerare Beskrivning
%H
% NH
%OH
Timmen (24-timmarsklocka) som ett decimaltal. Om resultatet är en ensiffrig prefix med en 0 (noll).
% NH anger det maximala antalet tecken som ska läsas, till exempel %1H. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%OH (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1
%I
% NI
%OI
Timmen (12-timmarsklockan) som ett decimaltal. Om resultatet är en ensiffrig prefix med 0 (noll).
% NI anger det maximala antalet tecken som ska läsas, till exempel %1I. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%OI (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1
%M
% NM
%OM
Minuterna som ett decimaltal. Om resultatet är en ensiffrig prefix med 0 (noll).
% NM anger det maximala antalet tecken som ska läsas, till exempel %3M. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%OM (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1
%S
% NS
%OS
Sekunder som ett decimaltal. Om antalet sekunder är mindre än 10 prefixet med 0 (noll). Om precisionen för indata inte exakt kan representeras med sekunder är formatet ett decimalt flyttalsnummer med ett fast format. Den har en precision för mikrosekunder om funktionen inte kan konvertera flyttals decimalsekunder inom 18 bråktal. Annars matchar dess precision precisionen för indata. Tecknet för decimaltecknet lokaliseras enligt nationella inställningar.
% NS anger det maximala antalet tecken som ska läsas, till exempel %3S. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%OS (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1
%p Språkvariantens motsvarighet till AM/PM-beteckningarna som är associerade med en 12-timmarsklocka.
%r Språkvariantens 12-timmars klocktid.
%R Motsvarar %H:%M.
%T Motsvarar "%H:%M:%S".
%X, %EX Språkvariantens tidsrepresentation.
%EX parsar den alternativa språkvariantens tidsrepresentation.1

Månad

Specificerare Beskrivning
%b, %B, %h Språkvariantens fullständiga eller förkortade månadsnamn. Om värdet inte innehåller en giltig månad genereras ett format_error undantag.
%h motsvarar %b.
%m, %Nm, %Om Månaden som ett decimaltal. Jan är 1.
% Nm anger det maximala antalet tecken som ska läsas, till exempel %3m. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%Om (bokstaven O, inte noll) tolkar språkvariantens alternativa representation.1

År

Specificerare Beskrivning
%C, %NC, %EC Talet som ett decimaltal.
% NC anger det maximala antalet tecken som ska läsas, till exempel %1N. Om N inte anges är standardvärdet 2. Inledande nolla tillåts men krävs inte.
%EC tolkar språkets alternativa representation av seklet.
%y, %Ny, %Ey, %Oy Årets två sista decimaler. Om talet inte anges på annat sätt (till exempel genom att använda %C) antas värdena i intervallet [69, 99] referera till åren 1969 till 1999, och värdena i intervallet [00, 68] antas referera till åren 2000 till 2068.
% Ny anger det maximala antalet tecken som ska läsas. Om N inte anges är standardvärdet 2.
Inledande nolla tillåts men krävs inte.
%Ey och %Oy (bokstaven O, inte noll) tolkar språkvariantens alternativa representation.1
%Y, %NY, %EY, Året som ett decimaltal. Om resultatet är färre än fyra siffror är det vänster vadderat med 0 (noll) till fyra siffror.
% NY anger det maximala antalet tecken som ska läsas. Om N inte anges är standardvärdet 4.
%EY parsar språkvariantens alternativa helårsrepresentation.1

ISO 8601 veckobaserat år

I ISO 8601 börjar veckorna med måndag. Årets första vecka måste innehålla den 4 januari och inkludera årets första torsdag.

Specificerare Ersättning
%g
% Ng
De två sista decimalsiffrorna för det ISO-veckobaserade året. Om resultatet är en ensiffrig föregås av 0 (noll). % Ng anger det maximala antalet tecken som ska läsas, till exempel %1g. Om N inte har angetts är standardvärdet 2
%G
% NG
Det ISO-veckobaserade året som ett decimaltal. Om resultatet är färre än fyra siffror är det vänster vadderat med 0 (noll) till fyra siffror. % NG anger det maximala antalet tecken som ska läsas, till exempel %1G. Om N inte anges är standardvärdet 4
%V
%OV
% NV
Det ISO-veckobaserade veckonumret som ett decimaltal. Om resultatet är en ensiffrig prefix med 0 (noll). % NV anger det maximala antalet tecken som ska läsas, till exempel %1V. Om N inte har angetts är standardvärdet 2
%OV (bokstaven O, inte noll) parsar språkvariantens alternativa representation.1

Allmänt

Specificerare Ersättning
%% Matchar %-tecknet
%c
%Ec
Språkvariantens datum- och tidsrepresentation.
%Ec tolkar språkvariantens alternativa datum- och tidsrepresentation.1
%n Matchar ett nytt linjetecken
%t Matchar noll eller ett blankstegstecken
%z
%Ez
%Oz
Förskjutningen från UTC i formatet [+|-]hh[mm]. Till exempel refererar -0430 till 4 timmar 30 minuter efter UTC och 04 refererar till 4 timmar före UTC.
%Ez och %Oz (bokstaven O, inte noll) parsar en : mellan timmar och minuter och renderar inledande nollor på timfältet valfritt1: [+|-]h[h][:mm]. Till exempel refererar -04:30 till 4 timmar 30 minuter efter UTC och 4 refererar till 4 timmar före UTC.
%Z Tidszonsförkortningen eller namnet. Ett enda ord parsas. Det här ordet kan bara innehålla alfanumeriska tecken från den grundläggande källteckenuppsättningen, eller något av _, /, -eller +.

Flaggor efter typ

Klass Specificerare/flagga
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q är endast för format, inte parsning)
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

1Implementeringen är för närvarande konsekvent med strftime- eftersom även om O (bokstaven O) och e accepteras ignoreras de. Det vill "%Od" tolkas som "%d".

get_leap_second_info

Returnerar en leap_second_info för den angivna tiden. Detta ger information om huruvida den angivna tiden inträffar under en skott andra insättning. Det ger också antalet skottsekunder som har lagts till mellan den 1 januari 1970 och den angivna tiden. Ett hopp andra insättning sker när International Earth Rotation and Reference Systems Service (IERS) förklarar att ett språng sekund kommer att läggas till (vilket resulterar i en 61 sekunders minut) för att ta hänsyn till skillnaden mellan atomisk tid och tid spåras genom att mäta rotationen av jorden, som är oregelbunden, och saktar gradvis.

Syntax

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

Parametrar

ut
Källan utc_time att hämta leap_second_info för.

Returvärde

Returnerar en leap_second_info vars medlem is_leap_second är true om ut är under ett positivt hopp andra insättning; annars false. Den elapsed medlemmen innehåller summan av skottsekunder mellan epokdatumet 1970-01-01 och ut. Om is_leap_second är trueinkluderas den skottsekunder som anges av ut i den elapsed summan.

get_tzdb

Hämtar den första posten i listan över programomfattande tidszonsdatabaser.

Syntax

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

Returvärde

Returnerar en referens till det första tzdb objektet som vid ett anrop till get_tzdb_list().front(). Det genererar ett runtime_error undantag om det är den första referensen till tidszonsdatabasen och tidszonsdatabasen inte kan initieras.

Anmärkningar

Om den inte har initierats ännu initierar get_tzdb den programomfattande tidszonsdatabasen vid första åtkomsten. Vid initiering är databasen en tzdb_list som innehåller ett enda initierat tzdb objekt.

get_tzdb_list

Hämtar den programomfattande singleton-tidszonsdatabasen.

Syntax

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

Returvärde

Returnerar en referens till det programomfattande tzdb_list objektet. Det genererar ett runtime_error undantag om det inte kan returnera en referens till ett giltigt tzdb_list objekt.

Anmärkningar

Om den inte har initierats ännu initierar get_tzdb_list den programomfattande tidszonsdatabasen vid första åtkomsten. Vid initiering är databasen en tzdb_list som innehåller ett enda initierat tzdb objekt. Funktionen get_tzdb_list är trådsäker.

is_am

Predikat för om den angivna timmen finns i ante-meridiem (AM) delen av dagen.

Syntax

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

Parametrar

h
Källan hours representation i 24-timmars notation.

Returvärde

Returnerar true om 0h <= h && h <= 11h, annars false.

is_pm

Predikat för om den angivna timmen finns i post-meridiem (PM) del av dagen.

Syntax

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

Parametrar

h
Källan hours representation i 24-timmars notation.

Returvärde

Returnerar true om 12h <= h && h <= 23h, annars false.

locate_zone

Hämtar ett tidszonsobjekt som anges med tidszonsnamn.

Syntax

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

Parametrar

tz_name
Namnet på tidszonen som ska returneras.

Returvärde

Returnerar en pekare till en time_zone som vid ett anrop till get_tzdb().locate_zone(tz_name). Det genererar ett runtime_error undantag om det inte kan hitta den angivna tidszonen, eller om det är den första referensen till tidszonsdatabasen och tidszonsdatabasen inte kan initieras.

Anmärkningar

Om den inte har initierats ännu initierar locate_zone den programomfattande tidszonsdatabasen vid första åtkomsten. Vid initiering är databasen en tzdb_list som innehåller ett enda initierat tzdb objekt.

make12

Returnerar den angivna timmen i 12-timmars notation.

Syntax

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

Parametrar

h
Källan hours representation i 24-timmars notation.

Returvärde

Returnerar 12-timmars motsvarigheten till h i intervallet [1h, 12h]. Returvärdet är ospecificerat om h inte finns i intervallet [0h, 23h].

make24

Returnerar den angivna timmen i 24-timmars notation.

Syntax

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

Parametrar

h
Källan hours representation i 12-timmars notation.

is_pm
Källrepresentationen hours är PM (om true) eller AM (om false).

Returvärde

Om is_pm är falsereturnerar make24 24-timmars motsvarigheten till h i intervallet [0h, 11h], förutsatt att h representerar en AM-timme. Annars returnerar den 24-timmars motsvarigheten till h i intervallet [12h, 23h], förutsatt att h representerar en PM-timme. Returvärdet är ospecificerat om h inte finns i intervallet [1h, 12h].

reload_tzdb

Läser in tidszonsdatabasen igen om uppdaterad information är tillgänglig.

Syntax

const tzdb& reload_tzdb();

Returvärde

När det har gjort en uppdatering av tidszonsdatabasen returnerar reload_tzdb en referens till det första tzdb-objektet som vid ett anrop till get_tzdb_list().front(). Det genererar ett runtime_error undantag om det inte kan returnera en referens till ett giltigt tzdb objekt.

Anmärkningar

Den lokala tidszonsdatabasen är den som angavs när programmet först kommer åt databasen, till exempel genom ett anrop till current_zone. När programmet körs kan implementeringen uppdatera tidszonsdatabasen. Uppdateringen påverkar inte programmet på något sätt om inte programmet anropar funktionen reload_tzdb. Den potentiellt uppdaterade tidszonsdatabasen kallas fjärrdatabas för tidszon.

Funktionen reload_tzdb kontrollerar versionen av både den lokala tidszonsdatabasen och den fjärranslutna tidszonsdatabasen. Om versionerna av de lokala databaserna och fjärrdatabaserna är desamma gör den inga ändringar. I annat fall skickas fjärrdatabasen till framsidan av tzdb_list som används av get_tzdb_list. En uppdatering ogiltigförklarar inte några pekare, referenser eller iteratorer. Funktionen reload_tzdb är trådsäker för anrop till get_tzdb_list().front() och get_tzdb_list().erase_after().

remote_version

Hämtar en sträng som innehåller den senaste fjärrdatabasversionen.

Syntax

string remote_version();

Returvärde

Returnerar en string som innehåller den senaste fjärrdatabasversionen.

round(duration)

Avrundar den angivna duration till närmaste duration i måltypen.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration där treat_as_floating_point_v<typename ToDuration::rep> är false.

Rep
Typen av intern representation av källan durationd.

Period
En std::ratio typ som representerar förhållandet mellan en sekund och källans Rep typ (det vill: sekunder per Rep).

d
Källobjektet duration.

Returvärde

Returnerar närmaste duration som kan representeras i ToDuration till parametern d. Banden går till det jämna värdet, det vill: värdet t där t % 2 == 0.

Anmärkningar

round deltar inte i överbelastningsmatchning om inte den ToDuration typen är en instans av en durationoch ToDuration har en integrerad representation.

round(time_point)

Returnerar den närmaste tidspunkten som kan representeras i målet duration till den angivna tidpunkten.

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration där treat_as_floating_point_v<typename ToDuration::rep> är false.

Clock
Den vanliga klocktypen för resultatet och källparametern tp.

Duration
Den duration typen av tp.

tp
Källobjektet time_point.

Returvärde

Returnerar den närmaste tidspunkten som kan representeras med hjälp av ToDuration för att tp. Banden går till det jämna värdet, det vill: värdet t där t % 2 == 0. I praktiken time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));.

Anmärkningar

round deltar inte i överlagringsmatchning om inte ToDuration typ är en instans av en duration.

time_point_cast

Omvandlar ett time_point objekt till en time_point som har en annan duration typ.

Syntax

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

Parametrar

ToDuration
Målet duration typ. Begränsad som en specialisering av duration.

Clock
Den vanliga klocktypen för resultatet och källparametern tp.

Duration
Den duration typen av tp.

tp
Det time_point objekt som ska gjutas till ett objekt som har ToDuration typ.

Returvärde

Returnerar ett time_point objekt som har en ToDuration typ. I praktiken time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Anmärkningar

Om inte ToDuration är en specialisering av durationdeltar inte den här funktionen i överbelastningsupplösning.

Se även

<chrono>
chrono literaler
chrono operatorer
duration klass
time_point klass
time_zone klass