2017-03-03 12 views
7

私はcrate chronoを使用しています。掘り下げた後、私はDateTimeタイプが、タイプi64のエポックタイムを生成する可能性のあるtimestamp()という機能を持っていることを発見しました。しかし、私はそれを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/に似た使い方を見つけることができましたクロノ/ */src/chrono/datetime.rs.html#42)、明らかにあなたの答えはより簡潔でフレンドリーです。ありがとうございました! – Sajuuk

関連する問題