Wie kann ich die Anzahl der Sekunden seit dem 1. Januar übergeben bekommen, 1970 für ein bestimmtes Datum, zum Beispiel: „2017.09.14 23.24.46“Erhalten Epoche Sekunden bestimmtes Datum in C
#include <stdio.h>
#include <stdint.h>
#include <time.h>
int main()
{
struct tm tmVar;
time_t timeVar;
sscanf("2017-09-14 23:24:46","%d-%d-%d %d:%d:%d",&tmVar.tm_year
,&tmVar.tm_mon, &tmVar.tm_mday,
&tmVar.tm_hour, &tmVar.tm_min,
&tmVar.tm_sec);
tmVar.tm_isdst = 1;
printf("tm_year :%d\n",tmVar.tm_year);
printf("tm_month :%d\n",tmVar.tm_mon);
printf("tm_day :%d\n",tmVar.tm_mday);
printf("tm_hour :%d\n",tmVar.tm_hour);
printf("tm_min :%d\n",tmVar.tm_min);
printf("tm_sec :%d\n",tmVar.tm_sec);
timeVar = mktime(&tmVar);
printf("time %d\n",timeVar);
}
Der Ausgang ist jedoch nicht das, was ich erwarte:
tm_year: 2017
tm_month: 9
tm_day: 14
tm_hour: 23
tm_min: 24
tm_sec: 46
Zeit 1336625342
Nach epochconverter.com, sollte der richtige Wert 1510529086. Warum sein bin ich diesen Wert nicht zu bekommen?
es die Anzahl der Sekunden –
in Bezug auf mit https://www.epochconverter.com/ dosen't der Ausgabe wiil 1510529086 –
Der portable Weg, dies zu tun ist, um sowohl "time_t" für "2017-09-14 23:24:46" und "time_t" für "1. Januar 1970" zu berechnen und dann 'difftime()' zu verwenden für den Unterschied. – chux