之前有一个问题问过其他方式的转换(Utc -> Local)
我正在尝试将Local日期Utc时间转换为时间:
use chrono::{Local, UTC, TimeZone};
let utc = chrono::UTC::now(); // 2019-07-04 15:13:19.014970700
let local = chrono::Local::now(); // 2019-07-04 17:13:19.014970700 +03:00
Run Code Online (Sandbox Code Playgroud)
我目前期待一些像local.to_utc(). 也许我可以TryFrom为这种转换实现一个特征。
如何将Local日期时间转换为Utc日期时间?
小智 8
从 chrono 0.4.7 开始,现在以更简洁的方式处理这个问题:
use chrono::prelude::*;
fn main() {
let utc = Utc::now();
let local = Local::now();
let converted: DateTime<Utc> = DateTime::from(local);
println!("{}\n{}", utc, converted);
}
Run Code Online (Sandbox Code Playgroud)
输出为:
use chrono::prelude::*;
fn main() {
let utc = Utc::now();
let local = Local::now();
let converted: DateTime<Utc> = DateTime::from(local);
println!("{}\n{}", utc, converted);
}
Run Code Online (Sandbox Code Playgroud)
Chrono提供TimeZone具有方法的特性from_local_datetime。
use chrono::prelude::*;
fn main() {
let local = Local::now();
let utc = Utc
.from_local_datetime(&local.naive_local())
.single()
.unwrap();
dbg!(local.naive_local());
dbg!(utc);
}
Run Code Online (Sandbox Code Playgroud)
在我的本地机器上它给了我:
[src/main.rs:10] local.naive_local() = 2019-07-04T14:25:15.093909965
[src/main.rs:11] utc = 2019-07-04T12:25:15.093909965Z
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
288 次 |
| 最近记录: |