我有一个包含时间戳的结构。为此,我正在使用chrono库。有两种获取时间戳的方法:
DateTime::parse_from_str,结果是DateTime<FixedOffset>UTC::now结果为DateTime<UTC>。有没有办法转换DateTime<UTC>为DateTime<FixedOffset>?
我相信您正在寻找DateTime::with_timezone:
use chrono::{DateTime, Local, TimeZone, Utc}; // 0.4.9
fn main() {
let now = Utc::now();
let then = Local
.datetime_from_str("Thu Jul 2 23:26:06 EDT 2015", "%a %h %d %H:%M:%S EDT %Y")
.unwrap();
println!("{}", now);
println!("{}", then);
let then_utc: DateTime<Utc> = then.with_timezone(&Utc);
println!("{}", then_utc);
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个多余的类型注释,then_utc以显示它在UTC中。此代码打印
use chrono::{DateTime, Local, TimeZone, Utc}; // 0.4.9
fn main() {
let now = Utc::now();
let then = Local
.datetime_from_str("Thu Jul 2 23:26:06 EDT 2015", "%a %h %d %H:%M:%S EDT %Y")
.unwrap();
println!("{}", now);
println!("{}", then);
let then_utc: DateTime<Utc> = then.with_timezone(&Utc);
println!("{}", then_utc);
}
Run Code Online (Sandbox Code Playgroud)