<chrono>, funkcje

abs(duration)

Zwraca d wartość if d >= d.zero(); w przeciwnym razie zwraca wartość -d.

Składnia

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

Parametry

Rep
Typ wewnętrznej reprezentacji źródła durationd.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

d
Obiekt źródłowy duration .

Wartość zwracana

Wartość bezwzględna .d

Przykład: abs(duration)

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

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

ceil(duration)

Zwraca najmniejszą reprezentację duration w typie docelowym, który jest większy lub równy określonej durationwartości .

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Rep
Typ wewnętrznej reprezentacji źródła durationd.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

d
Obiekt źródłowy duration .

Wartość zwracana

Zwraca najmniejszą duration reprezentację w ToDuration parametrze większym lub równym parametrowi d.

Uwagi

ceil nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationklasy .

ceil(time_point)

Zwraca najmniejszy punkt czasu reprezentowany w obiekcie docelowym duration , który jest większy lub równy określonemu punktowi czasu.

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Clock
Typowy typ zegara wyniku i parametr tpźródłowy .

Duration
duration Typ .tp

tp
Obiekt źródłowy time_point .

Wartość zwracana

Zwraca najmniejszy punkt czasu, który można przedstawić tpprzy użyciu ToDuration wartości większej lub równej . Skutecznie, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));.

Uwagi

ceil nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationklasy .

clock_cast

Konwertuje zegar time_point dla jednego zegara na odpowiednik time_point innego zegara.

Składnia

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

Parametry

DestClock
Typ zegara do konwersji time_point na.

Duration
SourceClockElement duration , lub , który określisz.

SourceClock
Typ zegara time_point , na podstawie którego jest konwertowana wartość .

t
Element time_point do konwersji.

Wartość zwracana

Odpowiednik time_pointtelementu , ale specyficzny dla DestClockelementu .

Uwagi

Parametry SourceClock i Duration można wywnioskować za pomocą odliczenia argumentu szablonu klasy, gdy nie zostaną jawnie przekazane. Na przykład, biorąc pod uwagę clock_cast<utc_clock>(file_clock::now()), jest wywoływany jako file_clock, i Duration jest wywoływany jako file_clock::durationSourceClock .

Na poniższej liście dobrze sformułowanych konwersji zegara jest wybierana ta, która wymaga najmniejszych kroków konwersji, aby pobrać z SourceClock elementu do.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)))

Aby uzyskać więcej informacji na temat tego, co clock_time_conversion robi, zobacz clock_time_conversion struktura.

Przykład: 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

Pobiera bieżący obiekt strefy czasowej.

Składnia

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

Wartość zwracana

Zwraca wskaźnik do elementu w time_zone taki sposób, jakby przez wywołanie metody get_tzdb().current_zone(). Zgłasza wyjątek runtime_error , jeśli jest to pierwsze odwołanie do bazy danych strefy czasowej i nie można zainicjować bazy danych strefy czasowej.

duration_cast

Rzutuje wartość na duration określony typ docelowy duration .

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Rep
Typ wewnętrznej reprezentacji źródła durationd.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

d
Obiekt źródłowy duration do rzutowania na typ docelowy duration .

Wartość zwracana

Obiekt typu ToDuration , który reprezentuje durationdelement . W razie potrzeby zostanie obcięty do typu docelowego. Wynik rzutowania zmiennoprzecinka duration na całkę duration jest niezdefiniowany, jeśli źródło zawiera NaN, nieskończoność lub jest zbyt duże dla reprezentacji w obiekcie docelowym duration.

Uwagi

Nie musisz używać duration_cast funkcji do konwertowania między typami duration , gdy okres źródłowy jest dokładnie podzielny przez okres docelowy, na przykład w przypadku konwersji minut na sekundy. Ponadto nie trzeba go konwertować między typami zmiennoprzecinkowych duration . Obie konwersje można wykonać przy użyciu zwykłych rzutów lub duration konstruktorów.

duration_cast nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration jest wystąpieniem durationklasy . Wszystkie konwersje są używane static_cast zamiast niejawnych konwersji. W miarę możliwości należy unikać mnożenia i dzielenia. Na przykład gdy kompilator wie, że wspólny stosunek okresów docelowych i źródłowych ma licznik lub mianownik 1. Obliczenia są wykonywane w najszerszym dostępnym typie, a następnie konwertowane tak, jakby do static_cast typu wyniku po zakończeniu.

Przykład: 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)

Zwraca największą reprezentację duration w typie docelowym, który jest mniejszy lub równy określonej durationwartości .

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Rep
Typ wewnętrznej reprezentacji źródła durationd.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

d
Obiekt źródłowy duration .

Wartość zwracana

Zwraca największą duration reprezentację w ToDuration wartości mniejszej lub równej parametrowi d.

Uwagi

floor nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationklasy .

floor(time_point)

Zwraca największy punkt czasu reprezentowany w obiekcie docelowym duration , który jest mniejszy lub równy określonemu punktowi czasu.

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Clock
Typowy typ zegara wyniku i parametr tpźródłowy .

Duration
duration Typ .tp

tp
Obiekt źródłowy time_point .

Wartość zwracana

Zwraca największy punkt czasu, który można przedstawić przy użyciu ToDuration wartości mniejszej lub równej tp. Skutecznie, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));.

Uwagi

floor nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationklasy .

from_stream

Przeanalizuj strumień wejściowy do jednego z std::chrono typów czasu lub interwałów, takich jak day, , monthyearyear_monthmonth_dayweekday, year_month_dayitd., przy użyciu określonego formatu.

Jeśli analizowanie zakończy się niepowodzeniem, (ios_base::failbit) zostanie wywołana, is.setstatea parametr wyjściowy nie zostanie zmodyfikowany.

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

Parametry szablonu

Alloc
Typ reprezentujący obiekt alokatora, który obsługuje alokację ciągu i cofanie alokacji pamięci.

charT
Typ danych pojedynczego znaku do odczytu ze strumienia i przechowywany w ciągu. Biblioteka Standardowa języka C++ udostępnia specjalizacje tego szablonu klasy z definicjami string typów elementów typu char, wstring, dla wchar_t, u16string dla char16_t, i u32string dla char32_t.

traits
Opisuje charT atrybuty dla i basic_istreambasic_string specjalizacji.

Rep
Wewnętrzny typ duration reprezentacji typu.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

Duration
Typ duration używany do specjalizacji czasu.

Parametry

abbrev
Jeśli abbrev nie nullptrma wartości , a specyfikator %Z formatu jest określony, a analizowanie zakończy się pomyślnie, abbrev zawiera przeanalizowaną wartość.

d
Jeśli analizowanie zakończy się pomyślnie, zawiera przeanalizowany dzień, kiedy funkcja zwróci.

dur
Analizowane duration ze strumienia.

fmt
Ciąg formatu używany do dopasowania danych wejściowych. Zobacz Analizowanie ciągów formatu, aby uzyskać listę opcji formatowania analizy.

ft
Analizowane file_time ze strumienia.

gt
Analizowane gps_time ze strumienia.

is
Strumień wejściowy do analizy.

lt
Analizowane local_time ze strumienia.

m
Analizowane month ze strumienia.

md
Analizowane month_day ze strumienia.

offset
Jeśli offset nie nullptrma wartości , a specyfikator %z formatu lub zmodyfikowany wariant, taki jak %Ez lub %0z jest określony, a analizowanie zakończy się pomyślnie, wskazuje offset przeanalizowaną wartość.

st
Analizowane sys_time ze strumienia.

tt
Analizowane tai_time ze strumienia.

ut
Analizowane utc_time ze strumienia.

wd
Analizowane weekday ze strumienia.

y
Analizowane year ze strumienia.

ym
Analizowane year_month ze strumienia.

ymd
Analizowane year_month_day ze strumienia.

Wartość zwracana

Strumień wejściowy, is

Przykład: 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

Uwagi

7) Jeśli %Z zostanie użyta i pomyślnie przeanalizowana, ta wartość zostanie przypisana, *abbrev jeśli abbrev ma wartość inną niż null. Jeśli %z (lub zmodyfikowany wariant) jest używany i pomyślnie przeanalizowany, ta wartość zostanie przypisana, *offset jeśli offset ma wartość inną niż null.

12) Jeśli %Z zostanie użyta i pomyślnie przeanalizowana, ta wartość zostanie przypisana, *abbrev jeśli abbrev ma wartość inną niż null. Jeśli %z (lub zmodyfikowany wariant) jest używany i pomyślnie przeanalizowany, ta wartość zostanie przypisana, *offset jeśli offset ma wartość inną niż null.

from_stream ciągi formatu

Format może być jednym z następujących ciągów:

Date

Specyfikator opis
%D Odpowiednik %m/%d/%y
%F
%NF
Odpowiednik elementu %Y-%m-%d. W przypadku modyfikacji z szerokością szerokość Njest stosowana tylko %Ydo .
%x
%Ex
Reprezentacja daty ustawień regionalnych.
%Ex Analizuje alternatywną reprezentację daty ustawień regionalnych.1

Day

Specyfikator opis
%d
%Od
%Nd
%e
%Oe
%Ne
Dzień miesiąca jako liczba dziesiętna.
%Nd określa maksymalną liczbę znaków do odczytania, na przykład %1d. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%Od (litera O, a nie zero) interpretuje alternatywną reprezentację ustawień regionalnych dnia miesiąca.1
%e jest odpowiednikiem %d elementu i można go modyfikować, na przykład %d.1

Dzień tygodnia

Specyfikator opis
%a
%A
Ustawienia regionalne mają pełną lub skróconą nazwę dnia tygodnia bez uwzględniania wielkości liter.
%A jest odpowiednikiem %a
%u
%Nu
Dzień tygodnia ISO jako liczba dziesiętna (1–7), gdzie poniedziałek wynosi 1.
%Nu określa maksymalną liczbę znaków do odczytania, na przykład %2u. Jeśli N nie zostanie określony, wartość domyślna to 1. Zera wiodące są dozwolone, ale nie są wymagane.
%w
%Nw
%Ow
Dzień tygodnia jako liczba dziesiętna (0–6), gdzie niedziela wynosi 0.
%Nw określa maksymalną liczbę znaków do odczytania, na przykład %2w. Jeśli N nie zostanie określony, wartość domyślna to 1.
Zera wiodące są dozwolone, ale nie są wymagane.
%Ow (litera O, a nie zero) interpretuje alternatywną reprezentację ustawień regionalnych.1

Tydzień/dzień roku

Specyfikator opis
%j
%Nj
Jeśli sformatowany typ jest specjalizacją czasu trwania, liczba dziesiętna dni bez dopełnienia. W przeciwnym razie dzień roku jako liczba dziesiętna. Parametr Jan 1 ma wartość 001. Jeśli wynik jest mniejszy niż trzy cyfry, jest w lewej części z 0 (zero) do trzech cyfr.
%Njokreśla maksymalną liczbę znaków do odczytania, na przykład %2j. Jeśli N nie zostanie określony, wartość domyślna to 3. Cyfry wiodące są dozwolone, ale nie są wymagane.
%U
%NU
%OU
Numer tygodnia roku jako liczba dziesiętna. Pierwsza niedziela roku to pierwszy dzień tygodnia 01. Dni tego samego roku przed tym tygodniem są w tygodniu 00. Jeśli wynik jest pojedynczą cyfrą, ma prefiks 0 (zero).
%NU określa maksymalną liczbę znaków do odczytania, na przykład %2U. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%OU (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1
%W
%NW
%OW
Numer tygodnia roku jako liczba dziesiętna. Pierwszy poniedziałek roku to pierwszy dzień tygodnia 01. Dni tego samego roku przed tym tygodniem są w tygodniu 00.
Jeśli wynik jest pojedynczą cyfrą, ma prefiks 0 (zero).
%NW określa maksymalną liczbę znaków do odczytania, na przykład %2W. Jeśli N nie jest określony, wartość domyślna to 1
Zera wiodące są dozwolone, ale nie są wymagane.%OW (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1

Godzina dnia

Specyfikator opis
%H
%NH
%OH
Godzina (zegar 24-godzinny) jako liczba dziesiętna. Jeśli wynik jest pojedynczą cyfrą, jest poprzedzony znakiem 0 (zero).
%NH określa maksymalną liczbę znaków do odczytania, na przykład %1H. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%OH (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1
%I
%NI
%OI
Godzina (zegar 12-godzinny) jako liczba dziesiętna. Jeśli wynik jest pojedynczą cyfrą, ma prefiks 0 (zero).
%NI określa maksymalną liczbę znaków do odczytania, na przykład %1I. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%OI (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1
%M
%NM
%OM
Minuty jako liczba dziesiętna. Jeśli wynik jest pojedynczą cyfrą, ma prefiks 0 (zero).
%NM określa maksymalną liczbę znaków do odczytania, na przykład %3M. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%OM (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1
%S
%NS
%OS
Sekundy jako liczba dziesiętna. Jeśli liczba sekund jest mniejsza niż 10, wynik jest poprzedzony prefiksem 0 (zero). Jeśli precyzja danych wejściowych nie może być dokładnie reprezentowana w sekundach, format jest liczbą zmiennoprzecinkową dziesiętną ze stałym formatem. Ma precyzję mikrosekund, jeśli funkcja nie może przekonwertować liczby dziesiętnej zmiennoprzecinkowej w ciągu 18 cyfr ułamkowych. W przeciwnym razie jego precyzja odpowiada precyzji danych wejściowych. Znak dla punktu dziesiętnego jest zlokalizowany zgodnie z ustawieniami regionalnymi.
%NS określa maksymalną liczbę znaków do odczytania, na przykład %3S. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%OS (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1
%p Odpowiednik ustawień regionalnych oznaczeń AM/PM skojarzonych z zegarem 12-godzinnym.
%r Czas zegara 12-godzinnego ustawień regionalnych.
%R Odpowiednik elementu %H:%M.
%T Odpowiednik elementu "%H:%M:%S".
%X, %EX Reprezentacja czasu ustawień regionalnych.
%EX Analizuje reprezentację czasu alternatywnego ustawień regionalnych.1

Month

Specyfikator opis
%b, %B, %h Pełna lub skrócona nazwa miesiąca ustawień regionalnych. Jeśli wartość nie zawiera prawidłowego miesiąca, format_error zostanie zgłoszony wyjątek.
%h jest równoważne z %b.
%m, %Nm, %Om Miesiąc jako liczba dziesiętna. Ma 1 stycznia.
%Nm określa maksymalną liczbę znaków do odczytania, na przykład %3m. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%Om (litera O, a nie zero) interpretuje alternatywną reprezentację ustawień regionalnych.1

Year

Specyfikator opis
%C, %NC, %EC Wiek jako liczba dziesiętna.
%NC określa maksymalną liczbę znaków do odczytania, na przykład %1N. Jeśli N nie zostanie określony, wartość domyślna to 2. Zera wiodące są dozwolone, ale nie są wymagane.
%EC interpretuje alternatywną reprezentację stulecia ustawień regionalnych.
%y, %Ny, %Ey, , %Oy Ostatnie dwie cyfry dziesiętne roku. Jeśli stulecie nie zostanie określone w inny sposób (na przykład przy użyciu %C), wartości w zakresie [69, 99] są zakładane, że odnoszą się do lat 1969-1999, a wartości w zakresie [00, 68] są uważane za odwołujące się do lat 2000–2068.
%Ny określa maksymalną liczbę znaków do odczytania. Jeśli N nie zostanie określony, wartość domyślna to 2.
Zera wiodące są dozwolone, ale nie są wymagane.
%Ey i %Oy (litera O, a nie zero) interpretują alternatywną reprezentację ustawień regionalnych.1
%Y, %NY, %EY, , Rok jako liczba dziesiętna. Jeśli wynik jest mniejszy niż cztery cyfry, jest w lewej części 0 z (zero) do czterech cyfr.
%NY określa maksymalną liczbę znaków do odczytania. Jeśli N nie zostanie określony, wartość domyślna to 4.
%EY Analizuje alternatywną reprezentację w pełnym roku ustawień regionalnych.1

Iso 8601 tygodniowy rok

W iso 8601 tygodnie zaczynają się od poniedziałku. Pierwszy tydzień roku musi zawierać 4 stycznia i zawierać pierwszy czwartek roku.

Specyfikator Zastąpienie
%g
%Ng
Ostatnie dwie cyfry dziesiętne roku opartego na standardzie ISO. Jeśli wynik jest jedną cyfrą, ma prefiks ( 0 zero). %Ng określa maksymalną liczbę znaków do odczytania, na przykład %1g. Jeśli N nie jest określony, wartość domyślna to 2
%G
%NG
Rok oparty na tygodniu ISO jako liczba dziesiętna. Jeśli wynik jest mniejszy niż cztery cyfry, jest w lewej części 0 z (zero) do czterech cyfr. %NG określa maksymalną liczbę znaków do odczytania, na przykład %1G. Jeśli N nie jest określony, wartość domyślna to 4
%V
%OV
%NV
Numer tygodnia opartego na formacie ISO jako liczba dziesiętna. Jeśli wynik jest pojedynczą cyfrą, ma prefiks 0 (zero). %NV określa maksymalną liczbę znaków do odczytania, na przykład %1V. Jeśli N nie jest określony, wartość domyślna to 2
%OV (litera O, a nie zero) analizuje alternatywną reprezentację ustawień regionalnych.1

Ogólne

Specyfikator Zastąpienie
%% Pasuje do znaku %
%c
%Ec
Reprezentacja daty i godziny ustawień regionalnych.
%Ec interpretuje alternatywną reprezentację daty i godziny ustawień regionalnych.1
%n Dopasuje znak nowego wiersza
%t Dopasuje zero lub jeden znak odstępu
%z
%Ez
%Oz
Przesunięcie z utc w formacie [+|-]hh[mm]. Na przykład -0430 odwołuje się do 4 godzin 30 minut za utc i 04 odnosi się do 4 godzin przed utc.
%Ez i %Oz (litera O, a nie zero) analizuje : wartości między godzinami i minutami i renderuje zera wiodące w polu godziny opcjonalne1: [+|-]h[h][:mm]. Na przykład -04:30 odnosi się do 4 godzin 30 minut za utc, a 4 odnosi się do 4 godzin przed UTC.
%Z Skrót lub nazwa strefy czasowej. Pojedyncze słowo jest analizowane. To słowo może zawierać tylko znaki alfanumeryczne z podstawowego zestawu znaków źródłowych _lub jednego z , /, -lub +.

Flagi według typu

Klasa Specyfikator/flaga
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q są tylko dla formatu, a nie analizowania)
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, u, w, H, M, S, 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, 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, U, V, W

1Implementacja jest obecnie zgodna ze strftime w tym, chociaż O (litera O) i e są akceptowane, są ignorowane. Oznacza to, "%Od" że jest interpretowany jako "%d".

get_leap_second_info

Zwraca wartość dla leap_second_info określonej godziny. Zawiera informacje o tym, czy podany czas występuje podczas wstawiania sekundy przestępnej. Zapewnia również liczbę sekund przestępnych, które zostały dodane między 1 stycznia 1970 r. a określoną godziną. Drugie wstawienie skoku występuje, gdy International Earth Rotation and Reference Systems Service (IERS) deklaruje, że drugi skok zostanie dodany (w wyniku 61 sekundy minuty), aby uwzględnić różnicę między czasem atomowym a czasem śledzonym przez pomiar rotacji ziemi, która jest nieregularna, i stopniowo spowalnia.

Składnia

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

Parametry

ut
Źródło utc_time , dla których ma być uzyskiwane leap_second_info .

Wartość zwracana

Zwraca element, którego leap_second_info element członkowski is_leap_second ma true wartość , jeśli ut występuje podczas wstawiania drugiego skoku dodatniego; w przeciwnym razie false. Element elapsed członkowski zawiera sumę sekund przestępnych między datą 1970-01-01epoki a ut. Jeśli is_leap_second wartość to true, drugi skok, do której odwołuje się ut element , jest uwzględniony w elapsed sumie.

get_tzdb

Pobiera pierwszy wpis na liście baz danych strefy czasowej dla całego programu.

Składnia

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

Wartość zwracana

Zwraca odwołanie do pierwszego tzdb obiektu tak, jakby przez wywołanie metody get_tzdb_list().front(). Zgłasza wyjątek runtime_error , jeśli jest to pierwsze odwołanie do bazy danych strefy czasowej i nie można zainicjować bazy danych strefy czasowej.

Uwagi

Jeśli jeszcze nie został zainicjowany, get_tzdb inicjuje bazę danych strefy czasowej dla całego programu przy pierwszym dostępie. Po zainicjowaniu baza danych jest bazą tzdb_list danych zawierającą pojedynczy zainicjowany tzdb obiekt.

get_tzdb_list

Pobiera pojedynczą bazę danych strefy czasowej dla całego programu.

Składnia

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

Wartość zwracana

Zwraca odwołanie do obiektu w całym tzdb_list programie. Zgłasza wyjątek runtime_error , jeśli nie może zwrócić odwołania do prawidłowego tzdb_list obiektu.

Uwagi

Jeśli jeszcze nie został zainicjowany, get_tzdb_list inicjuje bazę danych strefy czasowej dla całego programu przy pierwszym dostępie. Po zainicjowaniu baza danych jest bazą tzdb_list danych zawierającą pojedynczy zainicjowany tzdb obiekt. Funkcja get_tzdb_list jest bezpieczna wątkowo.

is_am

Predykat dla tego, czy określona godzina znajduje się w części ante-meridiem (AM) dnia.

Składnia

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

Parametry

h
Reprezentacja źródłowa hours w notacji czasowej 24-godzinnej.

Wartość zwracana

Zwraca wartość true if 0h <= h && h <= 11h, w przeciwnym razie false.

is_pm

Predykat dla tego, czy określona godzina znajduje się w części po meridiem (PM) dnia.

Składnia

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

Parametry

h
Reprezentacja źródłowa hours w notacji czasowej 24-godzinnej.

Wartość zwracana

Zwraca wartość true if 12h <= h && h <= 23h, w przeciwnym razie false.

locate_zone

Pobiera obiekt strefy czasowej określony przez nazwę strefy czasowej.

Składnia

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

Parametry

tz_name
Nazwa strefy czasowej, która ma być zwracana.

Wartość zwracana

Zwraca wskaźnik do elementu w time_zone taki sposób, jakby przez wywołanie metody get_tzdb().locate_zone(tz_name). Zgłasza wyjątek runtime_error , jeśli nie może odnaleźć określonej strefy czasowej lub jeśli jest to pierwsze odwołanie do bazy danych strefy czasowej i nie można zainicjować bazy danych strefy czasowej.

Uwagi

Jeśli jeszcze nie został zainicjowany, locate_zone inicjuje bazę danych strefy czasowej dla całego programu przy pierwszym dostępie. Po zainicjowaniu baza danych jest bazą tzdb_list danych zawierającą pojedynczy zainicjowany tzdb obiekt.

make12

Zwraca określoną godzinę w notacji czasowej 12-godzinnej.

Składnia

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

Parametry

h
Reprezentacja źródłowa hours w notacji czasowej 24-godzinnej.

Wartość zwracana

Zwraca 12-godzinny odpowiednik h wartości w zakresie [1h, 12h]. Wartość zwracana jest nieokreślona, jeśli h nie znajduje się w zakresie [0h, 23h].

make24

Zwraca określoną godzinę w notacji czasowej 24-godzinnej.

Składnia

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

Parametry

h
Reprezentacja źródłowa hours w notacji czasowej 12-godzinnej.

is_pm
Reprezentacja źródłowa hours to PM (jeśli true) lub AM (jeśli false).

Wartość zwracana

Jeśli is_pm wartość to false, make24 zwraca 24-godzinny odpowiednik h wartości w zakresie [0h, 11h], przy założeniu, że h reprezentuje godzinę am. W przeciwnym razie zwraca 24-godzinny odpowiednik h wartości w zakresie [12h, 23h], przy założeniu, że h reprezentuje godzinę PM. Wartość zwracana jest nieokreślona, jeśli h nie znajduje się w zakresie [1h, 12h].

reload_tzdb

Ponownie ładuje bazę danych strefy czasowej, jeśli zaktualizowane informacje są dostępne.

Składnia

const tzdb& reload_tzdb();

Wartość zwracana

Po dokonaniu aktualizacji bazy danych strefy czasowej, jeśli istnieje, reload_tzdb zwraca odwołanie do pierwszego tzdb obiektu tak, jakby przez wywołanie metody get_tzdb_list().front(). Zgłasza wyjątek runtime_error , jeśli nie może zwrócić odwołania do prawidłowego tzdb obiektu.

Uwagi

Lokalna baza danych strefy czasowej jest podana, gdy program najpierw uzyskuje dostęp do bazy danych, na przykład przez wywołanie metody current_zone. Podczas uruchamiania programu implementacja może zaktualizować bazę danych strefy czasowej. Aktualizacja nie ma wpływu na program w żaden sposób, chyba że program wywołuje reload_tzdb funkcję. Potencjalnie zaktualizowana baza danych strefy czasowej jest nazywana zdalną bazą danych strefy czasowej.

Funkcja reload_tzdb sprawdza wersję lokalnej bazy danych strefy czasowej i zdalnej bazy danych strefy czasowej. Jeśli wersje lokalnych i zdalnych baz danych są takie same, nie wprowadza żadnych zmian. W przeciwnym razie zdalna baza danych zostanie wypchnięta do przodu dostępnego przez get_tzdb_listusługę tzdb_list . Aktualizacja nie unieważnia żadnych wskaźników, odwołań ani iteratorów. Funkcja reload_tzdb jest bezpieczna wątkowo dla wywołań i get_tzdb_list().front()get_tzdb_list().erase_after().

remote_version

Pobiera ciąg zawierający najnowszą zdalną wersję bazy danych.

Składnia

string remote_version();

Wartość zwracana

Zwraca element string zawierający najnowszą zdalną wersję bazy danych.

round(duration)

Zaokrągla określoną duration wartość do najbliższej reprezentacji duration w typie docelowym.

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja duration , gdzie treat_as_floating_point_v<typename ToDuration::rep> to false.

Rep
Typ wewnętrznej reprezentacji źródła durationd.

Period
std::ratio Typ reprezentujący stosunek jednej sekundy do typu źródłowego Rep (czyli sekund na Rep).

d
Obiekt źródłowy duration .

Wartość zwracana

Zwraca najbliższą duration reprezentację w parametrze ToDuration do parametru d. Powiązania idą do parzystych wartości, czyli wartości t , w której t % 2 == 0.

Uwagi

round nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationobiektu i ToDuration ma integralną reprezentację.

round(time_point)

Zwraca najbliższy punkt czasu reprezentowany w obiekcie docelowym duration do określonego punktu czasu.

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja duration , gdzie treat_as_floating_point_v<typename ToDuration::rep> to false.

Clock
Typowy typ zegara wyniku i parametr tpźródłowy .

Duration
duration Typ .tp

tp
Obiekt źródłowy time_point .

Wartość zwracana

Zwraca najbliższy punkt czasu, który można przedstawić za pomocą metody ToDuration do tp. Powiązania idą do parzystych wartości, czyli wartości t , w której t % 2 == 0. Skutecznie, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));.

Uwagi

round nie uczestniczy w rozwiązywaniu przeciążeń, chyba że ToDuration typ jest wystąpieniem durationklasy .

time_point_cast

Rzutuje time_point obiekt na obiekt time_point o innym duration typie.

Składnia

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

Parametry

ToDuration
Typ docelowy duration . Ograniczone jako specjalizacja .duration

Clock
Typowy typ zegara wyniku i parametr tpźródłowy .

Duration
duration Typ .tp

tp
Obiekt time_point do rzutowania na obiekt o typie ToDuration .

Wartość zwracana

time_point Zwraca obiekt o typieToDuration. Skutecznie, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Uwagi

Chyba że ToDuration jest specjalizacją programu , ta funkcja nie uczestniczy w rozwiązywaniu durationprzeciążeń.

Zobacz też

<chrono>
chrono Literały
chrono, operatory
Klasa duration
Klasa time_point
Klasa time_zone