我怎样才能从 time::strftime 打印 date/time 而没有前导零?

How can I print a date/time from time::strftime without leading zeros?

如何打印不带前导零的 date/time?例如,Jul 5, 9:15.

根据 docs,它使用与 strftime 相同的语法,但是取消了前导零

time::strftime("%b %-d, %-I:%M", &time::now()).unwrap()

导致错误:

thread '' panicked at 'called Result::unwrap() on an Err value: InvalidFormatSpecifier('-')', ../src/libcore/result.rs:746

我怀疑 Rust 不支持提供此标志(以及其他几个标志)的 glibc 扩展;但是没有非前缀 date/time; 的语法。替代方案 (%l) 只是以空白 space 作为前缀,这同样没用。

我可以手动创建字符串,但这违背了函数的目的。

寻找 the code we can confirm that time crate does not support the flag -. Also note that time 箱子在 rust-lang-deprecated 用户上,因此它被弃用了。


也就是说,我建议您使用 chrono 箱子。除了支持您想要的格式说明符之外,chrono crate 还支持时区等等。

let now = chrono::Utc::now();
println!("{}", now.format("%b %-d, %-I:%M").to_string());