Анализ даты из строки

Rust:
Анализ даты из строки

Как:

Для разбора дат в Rust мы используем крейт chrono, это основная библиотека для работы с датой и временем.

Сначала добавьте chrono в ваш Cargo.toml:

[dependencies]
chrono = "0.4"

Затем вот простой пример разбора даты в формате ISO 8601:

extern crate chrono;
use chrono::prelude::*;

fn main() {
    let date_str = "2023-04-05";
    let parsed_date = date_str.parse::<NaiveDate>().unwrap();

    println!("Разобранная дата: {}", parsed_date);
}

Вывод:

Разобранная дата: 2023-04-05

Погружение в детали

chrono является выбором Rust для разбора даты и времени, фактически с момента создания Rust. До chrono в Rust была базовая библиотека времени, но ей не хватало функциональности. chrono заполнил этот пробел.

Среди альтернатив есть крейт time, но chrono выигрывает по популярности и набору функций. С точки зрения реализации, разбор строки с датой включает в себя указание формата и обработку возможности неудачи — поэтому мы использовали unwrap(), что нормально для примеров, но в реальном коде используйте match или unwrap_or_else для изящной обработки ошибок.

Исторически программные языки сталкиваются с трудностями при работе с датами и временем. Это сложно из-за високосных лет, часовых поясов и изменений времени летом и зимой. Вот почему такие крейты, как chrono, ценны — они обрабатывают эти странности за нас.

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