Метод duration_since
Метод duration_since класса Instant вычисляет разницу во времени между двумя моментами. Он возвращает объект Duration, который представляет собой промежуток времени, прошедший от переданного момента времени до момента, у которого был вызван метод. Параметром метод принимает другой экземпляр Instant, который должен быть раньше или равен текущему.
Если переданный момент времени находится в будущем относительно текущего, метод запаникует. Для безопасной работы с такими ситуациями используйте метод checked_duration_since или saturating_duration_since.
Синтаксис
instant.duration_since(earlier)
Пример
Давайте измерим, сколько времени прошло между двумя моментами:
use std::time::{Duration, Instant};
use std::thread;
fn main()
{
let start = Instant::now();
thread::sleep(Duration::from_millis(500));
let end = Instant::now();
let res = end.duration_since(start);
println!("{:?}", res);
}
Результат выполнения кода (значение может незначительно отличаться):
500.123456ms
Пример
Давайте получим количество секунд, прошедших между моментами:
use std::time::{Duration, Instant};
use std::thread;
fn main()
{
let start = Instant::now();
thread::sleep(Duration::from_secs(2));
let end = Instant::now();
let res = end.duration_since(start).as_secs();
println!("{}", res);
}
Результат выполнения кода:
2
Смотрите также
-
класс
Instant,
который представляет момент времени -
метод
elapsed,
который возвращает время, прошедшее с момента создания Instant -
метод
checked_duration_since,
который безопасно возвращает разницу во времени -
метод
saturating_duration_since,
который возвращает нулевую длительность, если момент в будущем