C Standard Library

C <time.h> - mktime() Function



The C <time.h> mktime() function returns the value of type time_t that represents the local time described by the tm structure pointed by timeptr.

The values of the members tm_wday and tm_yday of timeptr are ignored and the values of other members are permitted to be outside their normal ranges. For example, tm_mday may contain values above 31, which are interpreted accordingly as the days that follow the last day of the selected month. A negative value of tm_isdst causes this function to attempt to determine if Daylight Saving Time was in effect.

Syntax

time_t mktime (struct tm * timeptr);

Parameters

timeptr Specify pointer to a tm object specifying local calendar time to convert.

Return Value

Returns a time_t value corresponding to the calendar time passed as argument. Returns -1 if timeptr cannot be represented as time_t object.

Example:

The example below shows the usage of mktime() function.

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

int main () {
  int ret;
  struct tm timeinfo;
  char buffer[80];

  timeinfo.tm_year = 2019 - 1900;
  timeinfo.tm_mon = 7 - 1;
  timeinfo.tm_mday = 4;
  timeinfo.tm_hour = 10;
  timeinfo.tm_min = 28;
  timeinfo.tm_sec = 48;
  timeinfo.tm_isdst = -1;

  ret = mktime(&timeinfo);
  if( ret == -1 ) {
    printf("Error: Unable to make time using mktime\n");
  } else {
    strftime(buffer, sizeof(buffer), "%c", &timeinfo );
    printf("%s", buffer);
  }

  return 0;
}

The output of the above code will be:

Thu Jul  4 10:28:48 2019

❮ C <time.h> Library