Перетворення дати в рядок

Rust:
Перетворення дати в рядок

Як зробити:

use chrono::{DateTime, Utc, Local, NaiveDateTime};

fn main() {
    // Час в UTC
    let utc_now: DateTime<Utc> = Utc::now();
    println!("{}", utc_now.format("%Y-%m-%d %H:%M:%S").to_string());

    // Місцевий час
    let local_now: DateTime<Local> = Local::now();
    println!("{}", local_now.format("%Y-%m-%d %H:%M:%S").to_string());

    // Без конкретної часової зони
    let naive_now: NaiveDateTime = Local::now().naive_local();
    println!("{}", naive_now.format("%Y-%m-%d %H:%M:%S").to_string());
}

Вивід буде приблизно таким (залежить від поточного часу):

2023-03-15 20:45:32
2023-03-15 23:45:32
2023-03-15 23:45:32

Підводні камені:

Колись програмісти писали код для перетворення дати в рядок самостійно, але це призвело до багатьох помилок. Сучасні мови, як Rust, надають бібліотеки, такі як chrono, для безпечного та зручного маніпулювання датами. В chrono є можливість використання часових зон, настройки формату й багато чого іншого.

Альтернативи вбудованим функціям перетворення дати в Rust включають використання crates, таких як time або date. Кожний має свої переваги та недоліки, вибір залежить від конкретних вимог проекту.

Внутрішня реалізація chrono використовує свої типи даних для зберігання дати і часу: DateTime, NaiveDateTime, і ін. Кожен з цих типів слід використовувати в залежності від ситуації, наприклад, DateTime для дат із часовими зонами, і NaiveDateTime коли зона не важлива.

Дивіться також: