Ich bin neu zu c und versuche auf strptime
Funktion, die Zeichenfolge Zeit in Struktur tm
konvertiert. Nach der Konvertierung bekomme ich keine richtige Zeit. Alles ist gut, aber das Jahr zeigt falsch an (Standardjahr 1900).strptime funktioniert nicht mit Zeitzone Formatspezifizierer
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
int main()
{
struct tm tm;
char *pszTemp = "Mon Apr 25 09:53:00 IST 2016";
char szTempBuffer[256];
memset(&tm, 0, sizeof(struct tm));
memset(szTempBuffer, 0, sizeof(szTempBuffer));
strptime(pszTemp, "%a %b %d %H:%M:%S %Z %Y", &tm);
strftime(szTempBuffer, sizeof(szTempBuffer), "%Y-%m-%d %H:%M:%S", &tm);
printf("Last Boot Time after parsed = %s\n", szTempBuffer);
return 0;
}
Ausgabe: 1900-04-25 09:53:00
Haben Sie überprüft, was ['strptime'] (http://man7.org/linux/man-pages/man3/strptime.3.html) zurückgibt? Damit es keinen 'NULL' Zeiger zurückgibt? –
Haben Sie versucht, mit '-Wall' zu kompilieren? – LPs
@LPs: es hat nicht funktioniert. –