Дата из чисел в Rust
Интервал из стандартной библиотеки считает секунды и миллисекунды. Год, месяц и день им не задают. Календарную дату собирают тремя целыми числами. Крейт проверяет, что месяц и день попадают в допустимые пределы, и возвращает готовое значение или пустой вариант, если комбинация невозможна.
Создайте проект Cargo и из его корня выполните команду добавления зависимости:
cargo add chrono
Строка с именем крейта появится в секции зависимостей файла описания. Версию подберет сама команда, вручную число версии здесь не указываем.
В точке входа подключите тип наивной даты и соберите значение из трех чисел:
use chrono::NaiveDate;
fn main() {
if let Some(date) = NaiveDate::from_ymd_opt(2026, 10, 2) {
println!("{}", date);
}
}
На экране строка 2026-10-02. Такой
вывод дает стандартное текстовое представление
даты без часового пояса.
Тот же прием с другими числами, которые тоже образуют реальный день:
use chrono::NaiveDate;
fn main() {
if let Some(date) = NaiveDate::from_ymd_opt(2024, 2, 29) {
println!("{}", date);
}
}
Дана дата текстом:
let date = "2026-01-15";
Соберите ее из года 2026, месяца
1 и дня 15 и выведите
результат.
Скажите, что вернет сборка даты, если
месяц равен 13.
Дана дата текстом:
let date = "2023-02-29";
Попробуйте собрать такой день из чисел и опишите, что получится при проверке.