mktime gibt einen falschen Zeitstempel zurück (um einen ganzen Monat verschoben)

ich benutzemktime So erstellen Sie einen Unix-Zeitstempel aus meiner aktuellen Ortszeit:

#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
  struct tm info;

  // 16.05.2014
  info.tm_mday = 16;
  info.tm_mon = 5;
  info.tm_year = 114; // Years since 1900

  // 08:00:00 Uhr
  info.tm_hour = 8;
  info.tm_min = 0;
  info.tm_sec = 0;

  // Convert to Unix timestamp
  info.tm_isdst = -1;
  time_t timestamp = mktime(&info);
  printf("Timestamp: %i", timestamp);
}

Das gibt mir:

1402898400

Wenn dies zurück in eine für Menschen lesbare Zeit konvertiert wird (über eine Website), bedeutet dies:

16.06.2014 08:00:00

Wie Sie sehen, ist dies ein Monat von dem entfernt, was ich erwartet hatte (Put in Mai (5), stieg aus Juni (6)). Warum?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage