I am trying to format a chrono::NaiveDate like this: %Y-%m-%dT%H:%M:%S%.f
According to the third example in the documentation I expected this to work like so:
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"));
}
However instead of the desired output 2015-07-01T00:00:00.000 this prints 2015-07-01T00:00:00.
How can I also include the milliseconds in the output string?
Edit
Apparently the milliseconds get included, if they are not zero:
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"));
}
is there an option to always include them?
>Solution :
You can use .3f as the last specifier. This is similar to .%f but left-aligned but fixed to a length of 3
println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.3f"));