Rust:
Сравнение двух дат
Как это сделать:
Для работы с датами в Rust используется chrono. Сначала в cargo.toml нужно добавить chrono = "0.4". После этого вы можете сравнить даты следующим образом:
extern crate chrono;
use chrono::{DateTime, Utc};
fn main() {
let date1: DateTime<Utc> = Utc::now();
let date2: DateTime<Utc> = Utc::now(); // Измените это для разных результатов
if date1 > date2 {
println!("Date1 позже Date2");
} else if date1 < date2 {
println!("Date1 раньше Date2");
} else {
println!("Date1 равна Date2");
}
}Пример вывода, где date1 позже:
Date1 позже Date2Подробнее
В начальные дни Rust (2010-е годы) сравнение дат было сложнее — не было крейта chrono. Появление chrono упростило процесс за счёт таких типов, как DateTime. До chrono мы обрабатывали время вручную, что могло привести к ошибкам.
Почему chrono? Он абстрагирует сложности, такие как часовые пояса и високосные годы, делая сравнение дат надёжным. Без него пришлось бы работать с Unix-временными метками, что громоздко и менее читабельно.
Существуют альтернативы chrono, такие как крейт time, но chrono широко используется из-за его простоты и функциональности.
См. также
- Документация к крейту
chrono: docs.rs/chrono - Официальная документация Rust по концепции даты и времени: doc.rust-lang.org/std/time
- Сравнение крейтов
chronoиtime: users.rust-lang.org