Функция time_point_cast
Функция time_point_cast выполняет приведение объекта time_point из одной единицы измерения времени в другую. В качестве параметра она принимает новый тип длительности, а также исходный момент времени. Она позволяет изменить точность представления времени, например, преобразовать время в секундах в время в миллисекундах или наоборот.
Синтаксис
template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration> time_point_cast(const time_point<Clock, Duration>& tp);
Пример
Давайте преобразуем текущее время, полученное с помощью system_clock, в миллисекунды:
#include <iostream>
#include <chrono>
using namespace std;
using namespace chrono;
int main()
{
auto now = system_clock::now();
auto ms = time_point_cast<milliseconds>(now);
cout << ms.time_since_epoch().count() << endl;
return 0;
}
Результат выполнения кода:
1712345678901
Пример
Давайте преобразуем точку времени, заданную в секундах, в точку времени в минутах:
#include <iostream>
#include <chrono>
using namespace std;
using namespace chrono;
int main()
{
time_point<system_clock, seconds> tp(seconds(120));
auto minutes_tp = time_point_cast<minutes>(tp);
cout << minutes_tp.time_since_epoch().count() << endl;
return 0;
}
Результат выполнения кода:
2
Смотрите также
-
класс
time_point,
который представляет точку во времени -
класс
system_clock,
который представляет системные часы -
метод
now,
который возвращает текущее время -
функция
floor,
которая округляет время вниз