Time format von c++ nach c#



  • @booster sagte in Time format von c++ nach c#:

    ja, und was macht time_since_epoch()?

    Das gibt die Anzahl der "Ticks" seit der epoch an.
    Wobei die "Ticks" nicht unbedingt Sekunden sind. Das hängt von deiner time_point-Genauigkeit ab.

    Beispiel:

    auto n = chrono::system_clock::now()
    (std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &) @0x7f714c619010
    n.time_since_epoch().count()
    (long) 1550837538050613745
    // In der Einheit std::ratio<1, 1000000000>, also 1 ns
    
    auto h = std::chrono::time_point_cast<std::chrono::hours>(n)
    (std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<long, std::ratio<3600, 1> > > &) @0x7f714c619018
    h.time_since_epoch().count()
    (long) 430788
    // in der Einheit std::ratio<3600, 1>, also 3600 Sekunden, also 1 Stunde
    

    time_since_epoch().count() ist also nur dann in Sekunden (seit 1970*), wenn du als Duration-Einheit die Sekunde hast.

    * nur per Konvention, nicht vom Standard garantiert


Anmelden zum Antworten