2017-03-03 200 views
7

我正在使用板條箱計時器;經過一番挖掘,我發現DateTime類型有一個函數timestamp(),它可以產生i64類型的紀元時間。但是,我無法找到如何將其轉換回DateTime如何將紀元時間轉換爲標準日期和時間?

extern crate chrono; 
use chrono::*; 

fn main() { 
    let date = chrono::UTC.ymd(2020, 1, 1).and_hms(0, 0, 0); 
    println!("{}", start_date.timestamp()); 
    // ...how to convert it back? 
} 

回答

3

您首先需要創建一個NaiveDateTime,然後用它來創建一個再次DateTime

fn main() { 
    let datetime = UTC.ymd(2020, 1, 1).and_hms(0, 0, 0); 
    let timestamp = datetime.timestamp(); 
    let naive_datetime = NaiveDateTime::from_timestamp(timestamp, 0); 
    let datetime_again: DateTime<UTC> = DateTime::from_utc(naive_datetime, UTC); 

    println!("{}", datetime_again); 
} 
+1

我設法找到[thisplace]類似的用法(https://docs.rs/ chrono/*/src/chrono/datetime.rs.html#42),但顯然你的答案更簡潔友好。謝謝! – Sajuuk

相關問題