Rust:
Преобразование даты в строку
Как это сделать:
Для работы с датой и временем в Rust используется крейт chrono
. Убедитесь, что он есть в вашем Cargo.toml
:
[dependencies]
chrono = "0.4"
Теперь давайте отформатируем дату как строку.
extern crate chrono;
use chrono::{DateTime, Utc, NaiveDateTime};
fn main() {
let date: DateTime<Utc> = Utc::now(); // Получаем текущую дату и время в UTC.
let formatted_date = date.format("%Y-%m-%d %H:%M:%S").to_string();
println!("{}", formatted_date); // Выводит: 2023-03-15 14:30:45
}
Подробнее
До появления chrono
в стандартной библиотеке Rust было несколько функций для работы с датой и временем, но они были базовыми. chrono
построен на этом фундаменте и предлагает комплексный функционал. Альтернативой может быть новый крейт time
от Rust, который стремится к более безопасному и удобному API.
Когда вы преобразуете дату в строку, вы сериализуете – превращаете данные в формат, который можно передавать или хранить. Выбранный вами формат (%Y-%m-%d %H:%M:%S
в нашем случае) на ваше усмотрение, и chrono
поддерживает множество таких шаблонов.
Внутренне, даты часто хранятся в виде временных отметок – секунд с начальной точки, например, с эпохи Unix (1 января 1970 года). Когда вы форматируете дату, вы вычисляете читаемую человеком форму из этого счета, учитывая часовые пояса и високосные секунды.
См. также
- Документация крейта
chrono
: https://docs.rs/chrono/ - Документация крейта
time
от Rust: https://docs.rs/time/ - Синтаксис форматирования дат: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table