How to get the current date and time in seconds (since Jan 1, 1970 - Unix time 0) using C++

1 Answer

0 votes
#include <iostream>
#include <ctime>

int main() {
    std::time_t t = std::time(nullptr);
    std::tm tm = *std::localtime(&t);
    std::cout << "Now: " << (tm.tm_year + 1900) << '-' 
              << (tm.tm_mon + 1) << '-' 
              << tm.tm_mday << ' ' 
              << tm.tm_hour << ':' 
              << tm.tm_min << ':' 
              << tm.tm_sec << '\n';

    std::time_t result = std::mktime(&tm);
    if (result == (std::time_t)-1) {
        std::cout << "Error\n";
    } else {
        std::cout << "Seconds since Jan 1, 1970: " << static_cast<long long>(result) << '\n';
    }
}


 
/*
run:

Now: 2024-8-9 6:46:48
Seconds since Jan 1, 1970: 1723186008

*/

 



answered Aug 9, 2024 by avibootz
...