我有一个包含时间戳的结构。 为此我使用chrono library。有两种方法可以获得时间戳:
vim
从字符串中解析,结果为DateTime::parse_from_str
DateTime<FixedOffset>
收到的当前时间,结果为UTC::now
。有没有办法将DateTime<UTC>
转换为DateTime<UTC>
?
答案 0 :(得分:5)
我相信您正在寻找DateTime::with_timezone
:
extern crate chrono;
use chrono::{DateTime, Utc, Local, TimeZone};
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);
}
我在then_utc
上添加了一个冗余类型注释,以显示它是UTC格式。此代码打印
2017-08-18 23:04:07.470678901 UTC
2015-07-02 23:26:06 +00:00
2015-07-02 23:26:06 UTC