I would like to make directory with a name in "%Y%m%y_%H%M%S"
format, but trying to use the result of .format()
directly causes an error:
use std::fs;
use chrono;
fn main() {
let now = chrono::offset::Local::now();
let custom_datetime_format = now.format("%Y%m%y_%H%M%S");
println!("{:}", custom_datetime_format);
let new_dir = fs::create_dir(custom_datetime_format).unwrap();
println!("New directory created");
println!("{:#?}", new_dir);
}
error[E0277]: the trait bound `DelayedFormat<StrftimeItems<'_>>: AsRef<Path>` is not satisfied
--> src/main.rs:9:34
|
9 | let new_dir = fs::create_dir(custom_datetime_format).unwrap();
| -------------- ^^^^^^^^^^^^^^^^^^^^^^ the trait `AsRef<Path>` is not implemented for `DelayedFormat<StrftimeItems<'_>>`
| |
| required by a bound introduced by this call
|
note: required by a bound in `create_dir`
--> /Users/macbook/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/fs.rs:1977:22
|
1977 | pub fn create_dir<P: AsRef<Path>>(path: P) -> io::Result<()> {
| ^^^^^^^^^^^ required by this bound in `create_dir`
From my current understanding problem is that create_dir()
expects the parameter to implement AsRef<Path>
. Any idea how to convert DelayedFormat<StrftimeItems<'_>>
to a AsRef<Path>
? Or this is all wrong?