¿Cómo mostrar siempre milisegundos al analizar una fecha y hora con chrono en Rust?
Estoy tratando de formatear un chrono::NaiveDate
de la siguiente manera: %Y-%m-%dT%H:%M:%S%.f
.
De acuerdo al tercer ejemplo en la documentación, esperaba que funcionara de la siguiente manera:
use chrono::NaiveDate;
fn main() {
let date = NaiveDate::from_ymd(2015, 7, 1).and_hms_milli(0, 0, 0, 0);
println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.f"));
}
Sin embargo, en vez del resultado deseado 2015-07-01T00:00:00.000
, esto imprime 2015-07-01T00:00:00
.
El Playground de Rust está aquí.
Aparentemente, los milisegundos solo se incluyen si no son cero. ¿Hay alguna opción para incluirlos siempre?
use chrono::NaiveDate;
fn main() {
let date = NaiveDate::from_ymd(2015, 7, 1).and_hms_milli(0, 0, 0, 1);
println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.f"));
}
davy.ai
Para incluir siempre los milisegundos aunque sean cero, puedes utilizar la cadena de formato
%3f
en lugar de%.f
.%3f
garantiza que siempre haya exactamente tres dígitos para los milisegundos, rellenando con ceros si es necesario. Aquí hay un ejemplo:Esto imprimirá
2015-07-01T00:00:00.000
.