Analiza składniowa daty z łańcucha znaków

Rust:
Analiza składniowa daty z łańcucha znaków

Jak to zrobić:

Używając standardowej biblioteki Rusta (chrono Crate)

Standardowa biblioteka Rusta bezpośrednio nie obejmuje parsowania daty, ale szeroko używany chrono crate jest solidnym rozwiązaniem do manipulacji datą i czasem. Najpierw dodaj chrono do swojego Cargo.toml:

[dependencies]
chrono = "0.4"

Następnie użyj chrono do sparsowania ciągu znaków daty na obiekt NaiveDate:

extern crate chrono;
use chrono::NaiveDate;

fn main() {
    let date_str = "2023-04-01";
    let date = NaiveDate::parse_from_str(date_str, "%Y-%m-%d")
        .expect("Nie udało się sparsować daty");

    println!("Sparsowana data: {}", date);
}

// Przykładowe wyjście:
// Sparsowana data: 2023-04-01

Używając zaawansowanej obsługi daty-czasu Rusta (time Crate)

Dla bardziej zaawansowanej obsługi daty-czasu, w tym bardziej ergonomicznego parsowania, rozważ użycie crate’a time. Najpierw dołącz go do swojego Cargo.toml:

[dependencies]
time = "0.3"

Następnie sparsuj ciąg znaków daty używając typu Date i PrimitiveDateTime:

use time::{Date, PrimitiveDateTime, macros::datetime};

fn main() {
    let date_str = "2023-04-01 12:34:56";
    let parsed_date = PrimitiveDateTime::parse(
        date_str, 
        &datetime!("%Y-%m-%d %H:%M:%S")
    ).expect("Nie udało się sparsować daty i czasu");

    println!("Sparsowany datetime: {}", parsed_date);
}

// Przykładowe wyjście:
// Sparsowany datetime: 2023-04-01 12:34:56

Oba przykłady pokazują, jak Rust przy pomocy zewnętrznych crate’ów ułatwia parsowanie ciągów znaków daty na manipulowalne obiekty daty, co czyni go potężnym narzędziem do tworzenia oprogramowania pracującego z danymi czasowymi.