Как я могу напечатать дату / время из time:: strftime без ведущих нулей?
как я могу напечатать дату / время без ведущих нулей? Например, Jul 5, 9:15
.
по словам docs он использует тот же синтаксис, как strftime
, однако подавление ведущих нулей
time::strftime("%b %-d, %-I:%M", &time::now()).unwrap()
приводит к ошибке:
нить "запаниковал" называется
Result::unwrap()
наErr
значение: InvalidFormatSpecifier (' -')', ../src/libcore/result.rs: 746
Я подозреваю, что Rust не поддерживает расширения glibc, которые предоставьте этот флаг (и несколько других); однако нет синтаксиса для даты/времени без префикса; альтернатива (%l
) просто префиксы с пустым пространством, которое одинаково бесполезно.
я мог бы создать строку вручную, но это противоречит цели функции.
1 ответов
просмотр код мы можем подтвердить, что time
ящик не поддерживает флаг -
. Также обратите внимание, что time
клеть на rust-lang-deprecated
пользователь, поэтому он устарел.
что сказал, я рекомендую вам использовать chrono
обрешеткой. В дополнение к поддержке спецификаторов формата, которые вы хотите, Chrono crate также поддерживает часовые пояса и многое другое.
let now = chrono::UTC::now();
println!("{}", now.format("%b %-d, %-I:%M").to_string());