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

1 Answer

0 votes
#include <stdio.h>
#include <time.h>

int main()
{
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    printf("Now: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);

    time_t result = mktime(&tm);
    if (result == (time_t) - 1) {
        puts("Error");
    }
    else {
        printf("Seconds since Jan 1, 1970: %lld\n", (long long)result);
    }
}



/*
run:

Now: 2024-08-08 16:57:17
Seconds since Jan 1, 1970: 1723136237

*/

 



answered Aug 8, 2024 by avibootz
...