如何转换chrono`DateTime<;UTC>;`实例到`DateTime<;本地>;`?
我的目标是将如何转换chrono`DateTime<;UTC>;`实例到`DateTime<;本地>;`?,datetime,rust,Datetime,Rust,我的目标是将utc转换为loc: use chrono::{Local, UTC, TimeZone}; let utc = chrono::UTC::now(); let loc = chrono::Local::now(); println!("{:?}", utc); println!("{:?}", loc); println!("{:?}", utc.with_timezone(&Local)); println!("{:?}", Local.from_utc_datet
utc
转换为loc
:
use chrono::{Local, UTC, TimeZone};
let utc = chrono::UTC::now();
let loc = chrono::Local::now();
println!("{:?}", utc);
println!("{:?}", loc);
println!("{:?}", utc.with_timezone(&Local));
println!("{:?}", Local.from_utc_datetime(&utc.naive_local()));
。。。产生了以下输出:
2015-02-26T16:22:27.873593Z
2015-02-26T17:22:27.873663+01:00
2015-02-26T15:22:27.873593+00:00
2015-02-26T15:22:27.873593+00:00
第二行显示的loc
时间是我在转换utc
时想要看到的时间
如何正确地将DateTime
实例转换为DateTime
元
我正在使用。在这个方法中,它甚至告诉我应该使用
时区
特性。但是,我遗漏了一些东西。哦,谢谢你的报道。这是一个bug,已注册为问题。这应该在Chrono 0.2.3中固定
除了这个错误,
utc.with_timezone(&Local)
确实是转换为本地时间的正确方法。有一个重要的标识是utc。与_时区(&Local)。与_时区(&utc)
应等于utc
(本地时区已更改的例外情况除外)。从chrono 0.4.7开始,您可以使用from trait以更简单的方式在两者之间进行转换:
使用chrono::prelude::*;
fn main(){
让utc=utc::now();
让local=local::now();
让转换为:DateTime=DateTime::from(utc);
}
谢谢!您是否可以调整您的答案,说明带时区的是回答问题的方法?那我很乐意开绿灯。干杯