Класс system_clock
Класс system_clock представляет системные часы реального времени.
Это часы, которые отражают текущее календарное время и могут быть
синхронизированы с внешними источниками времени. Класс предоставляет
статический метод now для получения текущего момента времени,
а также методы to_time_t и from_time_t для преобразования
между типом time_point и типом time_t. В отличие от
steady_clock, значения system_clock могут изменяться
при корректировке системного времени.
Синтаксис
#include <chrono>
std::chrono::system_clock::now();
std::chrono::system_clock::to_time_t(tp);
std::chrono::system_clock::from_time_t(t);
Пример
Давайте получим текущий момент времени с помощью метода now
и выведем его в виде количества секунд, прошедших с начала эпохи:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto now = chrono::system_clock::now();
auto sec = chrono::duration_cast<chrono::seconds>(now.time_since_epoch()).count();
cout << sec << endl;
return 0;
}
Результат выполнения кода:
1735689600
Пример
Давайте преобразуем текущий момент времени в тип time_t
с помощью метода to_time_t и выведем полученное значение:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto now = chrono::system_clock::now();
time_t t = chrono::system_clock::to_time_t(now);
cout << t << endl;
return 0;
}
Результат выполнения кода:
1735689600
Пример
Давайте преобразуем значение типа time_t обратно в момент
времени с помощью метода from_time_t и выведем его в виде
количества секунд с начала эпохи:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
time_t t = 1735689600;
auto tp = chrono::system_clock::from_time_t(t);
auto sec = chrono::duration_cast<chrono::seconds>(tp.time_since_epoch()).count();
cout << sec << endl;
return 0;
}
Результат выполнения кода:
1735689600
Смотрите также
-
метод
now,
который возвращает текущий момент времени -
метод
to_time_t,
который преобразует момент времени в time_t -
метод
from_time_t,
который преобразует time_t в момент времени -
класс
steady_clock,
который представляет монотонные часы