РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
459 of 1245 menu

Тип SystemTimeError

Тип SystemTimeError представляет собой структуру ошибки, которая возвращается методами duration_since и elapsed типа SystemTime в тех случаях, когда вычитаемое время оказалось позже текущего времени. Такая ситуация возможна, например, когда системные часы были переведены назад. Значение ошибки хранит длительность Duration, на которую одно время опередило другое. Получить эту длительность можно с помощью метода duration.

Синтаксис

std::time::SystemTimeError

Методы

Тип SystemTimeError предоставляет метод duration, который возвращает длительность Duration, описывающую, насколько одно время опередило другое:

SystemTimeError::duration(&self) -> Duration

Пример

Давайте создадим ошибку с помощью метода duration_since, передав в него время, которое позже текущего системного времени:

use std::time::{SystemTime, Duration}; fn main() { let now = SystemTime::now(); let future = now + Duration::from_secs(100); let res = now.duration_since(future); println!("{:?}", res); }

Результат выполнения кода:

Err(SystemTimeError(100s))

Пример

Давайте получим длительность из ошибки с помощью метода duration:

use std::time::{SystemTime, Duration}; fn main() { let now = SystemTime::now(); let future = now + Duration::from_secs(100); match now.duration_since(future) { Ok(d) => println!("{:?}", d), Err(e) => { let res = e.duration(); println!("{:?}", res); } } }

Результат выполнения кода:

100s

Пример

Давайте проверим работу метода elapsed, который также может вернуть ошибку SystemTimeError:

use std::time::{SystemTime, Duration}; fn main() { let future = SystemTime::now() + Duration::from_secs(50); let res = future.elapsed(); println!("{:?}", res); }

Результат выполнения кода:

Err(SystemTimeError(50s))

Смотрите также

  • тип SystemTime,
    который представляет системное время
  • метод duration_since,
    который вычисляет разницу между двумя моментами времени
  • метод elapsed,
    который возвращает время, прошедшее с момента создания
  • метод now,
    который возвращает текущее системное время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить