2017-03-03 157 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

相关问题