Метод duration_since
Метод duration_since класса SystemTime
вычисляет разницу между текущим моментом времени
и моментом, переданным в качестве параметра.
Метод возвращает значение типа Duration,
которое представляет собой промежуток времени.
Параметром метод принимает момент времени
SystemTime, от которого нужно отсчитать
прошедшее время. Если переданный момент находится
в будущем относительно текущего, метод возвращает
ошибку SystemTimeError.
Синтаксис
SystemTime::duration_since(&self, earlier: SystemTime) -> Result<Duration, SystemTimeError>
Пример
Давайте вычислим, сколько времени прошло
с момента создания переменной earlier
до текущего момента:
use std::time::{SystemTime, Duration};
fn main()
{
let earlier = SystemTime::now();
let res = SystemTime::now().duration_since(earlier);
println!("{:?}", res);
}
Результат выполнения кода:
Ok(39.37µs)
Пример
Давайте вычтем из текущего момента времени момент, находящийся в будущем. Такой вызов приведёт к ошибке:
use std::time::{SystemTime, Duration};
fn main()
{
let future = SystemTime::now() + Duration::from_secs(100);
let res = SystemTime::now().duration_since(future);
println!("{:?}", res);
}
Результат выполнения кода:
Err(SystemTimeError(-99.99997085s))
Пример
Давайте получим количество секунд, прошедших
с момента earlier, используя метод
unwrap и поле as_secs:
use std::time::SystemTime;
fn main()
{
let earlier = SystemTime::now();
let res = SystemTime::now().duration_since(earlier).unwrap();
println!("{}", res.as_secs());
}
Результат выполнения кода:
0
Смотрите также
-
класс
SystemTime,
который представляет момент времени в системе -
метод
now,
который возвращает текущий момент времени -
метод
elapsed,
который возвращает время, прошедшее с данного момента -
класс
SystemTimeError,
который представляет ошибку вычисления разницы времени