std::chrono, jetz plus zeit ist welches Datum



  • Hallo,
    ich habe mich gerade mit std::chrono restlos selbst verwirrt und sehe mich nach allen Fehlversuchen gar nicht mehr raus.

    Was ich versucht habe,

    using namespace std::chrono;
    auto datum = system_clock::now() + microseconds::max ;
    // print datum in einer menschlich lesbarer weise
    

    Wie funktioniert das, wie viele casts muss ich da verwenden, und wie bekomme ich ein Datum das nach cout geschickt ein lesbares Ergebnis liefert.
    Bin restlos verwirrt und ersuche um Hilfe!
    Danke



  • #include <iostream>
    #include <chrono>
    #include <ctime>
    #include <iomanip>
    
    int main() {
        using namespace std::literals::chrono_literals;
        const auto Offset = 12h;
        const auto Time = std::chrono::system_clock::to_time_t( std::chrono::system_clock::now() + Offset );
        std::cout << std::put_time( std::localtime( &Time ), "%d/%m/%y %X" ) << '\n';
    }
    

    LG



  • Danke!
    Das hilft sehr,

    leider sieht es so aus das Einheiten kleiner als Sekunden von put_time so wohl nicht auf die Konsole geschrieben werden können.

    Interessant auch, verwendet man std::chrono::hours::max() als offset, ändert sich das Datum nur um einige wenige Stunden.


Log in to reply