似乎我无法SystemTime变成一个字符串.我必须使用SystemTime因为我需要从中返回的值std::fs::Metadata::created().
您应该使用Chrono进行格式化支持.从Chrono v0.4.0开始,这更容易,因为它现在实现了以下的直接转换std::time::SystemTime:
extern crate chrono;
use chrono::offset::Utc;
use chrono::DateTime;
use std::time::SystemTime;
let system_time = SystemTime::now();
let datetime: DateTime<Utc> = system_time.into();
println!("{}", datetime.format("%d/%m/%Y %T"));
Run Code Online (Sandbox Code Playgroud)
如果您想要以本地时区而不是UTC的时间,请使用Local而不是Utc.
有关格式说明符的完整列表,请参阅Chrono文档.
该time板条箱现在是chrono. 有关从 中返回 a 的详细信息,请参阅该format()方法。在制作格式化字符串时,还要确保检查说明符表。StringOffsetDateTimestrftime
use time::OffsetDateTime;
use std::time::SystemTime;
fn systemtime_strftime<T>(dt: T, format: &str) -> String
where T: Into<OffsetDateTime>
{
dt.into().format(format)
}
fn main() {
let st = SystemTime::now();
println!("{}", systemtime_strftime(st, "%d/%m/%Y %T"));
}
Run Code Online (Sandbox Code Playgroud)