<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 duration
d
.
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 duration
wartoś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 duration
d
.
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 duration
klasy .
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ć tp
przy 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 duration
klasy .
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
SourceClock
Element 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_point
t
elementu , ale specyficzny dla DestClock
elementu .
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::duration
SourceClock
.
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 duration
d
.
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 duration
d
element . 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 duration
klasy . 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 duration
wartoś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 duration
d
.
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 duration
klasy .
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 duration
klasy .
from_stream
Przeanalizuj strumień wejściowy do jednego z std::chrono
typów czasu lub interwałów, takich jak day
, , month
year
year_month
month_day
weekday
, year_month_day
itd., przy użyciu określonego formatu.
Jeśli analizowanie zakończy się niepowodzeniem, (ios_base::failbit
) zostanie wywołana, is.setstate
a 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_istream
basic_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 nullptr
ma 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 nullptr
ma 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:
Data
Specyfikator | opis |
---|---|
%D |
Odpowiednik %m/%d/%y |
%F % NF |
Odpowiednik elementu %Y-%m-%d . W przypadku modyfikacji z szerokością szerokość N jest stosowana tylko %Y do . |
%x %Ex |
Reprezentacja daty ustawień regionalnych.%Ex Analizuje alternatywną reprezentację daty ustawień regionalnych.1 |
Dzień
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.% Nj okreś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 1Zera 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 (Rok)
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-01
epoki 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_list
usł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 duration
d
.
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 duration
obiektu 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 duration
klasy .
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 duration
przeciążeń.
Zobacz też
<chrono>
chrono
Literały
chrono
, operatory
Klasa duration
Klasa time_point
Klasa time_zone