Question

I have a variable which using time_t data type. I want to convert this type into "YYYY-MM-DD HH:MM:SS". I just know if it's only works in localtime() example:

char buff[20];
time_t now = time(NULL);
strftime(buff, 20, "%Y-%m-%d %H:%M:%S", localtime(&now));

any suggestion how to convert it? because I have the time which always increased every minute, not the fixed one like the localtime(). I need this conversion for matching with datetime type in MySQL database.

Was it helpful?

Solution

The functions gmtime and localtime (for UTC and local time respectively) will turn an arbitrary time_t into a struct tm with individual fields for year, month and so on.

You can then just use strftime as you have, or sprintf to create strings from them, such as with:

char buff[11];
sprintf (buff, "%04d-%02d-%02d",
    mytm.tm_year + 1900,
    mytm.tm_mon + 1,
    mytm.tm_mday);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top