2017-03-03 6 views
7

Ich benutze Kiste Chrono; Nach einigem Graben entdeckte ich, dass der DateTime Typ eine Funktion timestamp() hat, die Epochzeit vom Typ i64 erzeugen konnte. Ich konnte jedoch nicht herausfinden, wie ich es zurück in DateTime konvertieren kann.Wie konvertiert man die Epochzeit in Standarddatum und -uhrzeit?

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? 
} 

Antwort

3

Sie müssen zuerst eine NaiveDateTime und es dann erstellen verwenden eine DateTime erneut zu erstellen:

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

ich in [thisplace] eine ähnliche Verwendung finden verwaltet (https://docs.rs/ chrono/*/src/chrono/datetime.rs.html # 42), aber anscheinend ist deine Antwort prägnanter und freundlicher. Danke! – Sajuuk

Verwandte Themen