#datetime #rust #datetime-format
#дата и время #Ржавчина #datetime-формат
Вопрос:
Я пытаюсь отформатировать chrono::NaiveDate
вот так: %Y-%m-%dT%H:%M:%S%.f
Согласно третьему примеру в документации, я ожидал, что это будет работать следующим образом:
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"));
}
Однако вместо желаемого 2015-07-01T00:00:00.000
результата выводится это 2015-07-01T00:00:00
.
По-видимому, миллисекунды включаются только в том случае, если они не равны нулю:
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"));
}
есть ли возможность всегда включать их?
Ответ №1:
Вы можете использовать в .3f
качестве последнего спецификатора. Это похоже на, .%f
но выровнено по левому краю, но фиксировано до длины 3
println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.3f"));