Rust:
Beräkna ett datum i framtiden eller förflutenheten
Hur gör man:
För att hantera datum och tid i Rust använder vi chrono
-biblioteket. Här är en enkel guide:
extern crate chrono;
use chrono::{DateTime, Utc, Duration};
fn main() {
// Nuvarande tidpunkt
let now: DateTime<Utc> = Utc::now();
println!("Nu: {}", now);
// Beräkna ett datum 30 dagar i framtiden
let future_date = now + Duration::days(30);
println!("Framtid: {}", future_date);
// Beräkna ett datum 30 dagar i det förflutna
let past_date = now - Duration::days(30);
println!("Förflutet: {}", past_date);
}
Sample output:
Nu: 2023-04-12T15:30:45Z
Framtid: 2023-05-12T15:30:45Z
Förflutet: 2023-03-13T15:30:45Z
Fördjupning
Tidigare hanterades tider i standardbiblioteket std::time
, men det gav begränsad funktionalitet. chrono
är nu det mest populära valet för Rust-utvecklare när det gäller datum och tid. Det finns alternativ som time
-biblioteket, men chrono
erbjuder en rik uppsättning funktioner och är väl etablerat.
När man implementerar datumberäkningar i chrono
, bör man tänka på tidszoner och eventuell omställning till/sommar- och vintertid. chrono
hanterar detta smidigt, vilket gör det till ett robust val för datum- och tidshantering.
Se även
- Chrono documentation: https://docs.rs/chrono/
- Rust documentation for
std::time
: https://doc.rust-lang.org/std/time/ - Time library: https://docs.rs/time/