Das Ziel ist eine Funktion, die einen int (oder long) mit der tatsächlichen Zeit liefert. Ich schreibe daher die localtime in eine Zeichenkette (soweit ich das verstanden habe) und versuche sie mit atoi/atol in mein int/long zu konvertieren. Aber irgendwie bekomme ich nicht das erwartete Ergebnis.String aus strftime in int/long konvertieren
Dinge, die ich habe versucht:
- ich von der anfänglichen int zu lange eingeschaltet.
- Ich habe die Größe meiner Zeichenfolge geändert. Wenn ich die Größe auf 7 statt meiner benötigten 15 Bytes verändere, konvertiert es mindestens den Datumsteil meiner Zeichenkette. Aber ich brauche alles.
Ich habe den folgenden Code bekam:
long generate_time()
{
time_t time1;
time(&time1);
char time_str[15];
long act_time;
strftime(time_str, 15, "%Y%m%d%H%M%S", localtime(&time1));
printf("Actual time: %s\n", time_str);
act_time = atol(time_str);
printf("Transformed time: %d\n", act_time);
return act_time;
}
in der Antwort Resultierende:
Tatsächliche Zeit: 20170407091221 Transformed Zeit: 1240669205
ich diese Hoffnung ist einfach zu sortieren und danke Ihnen allen für Ihre Hilfe im Voraus!
Sie sollten Ihren Code zu Englisch übersetzen, bevor Sie Ihre Frage zu stellen. Benutzer können Ihnen besser helfen, wenn Sie verstehen, was Sie geschrieben haben ... – LPs
Möchten Sie die Zeit im Timestamp-Format so lange zurückgeben? die Rückgabe von 20170407091221 als Integer-Wert macht keinen Sinn. –
Vielen Dank, dass Sie darauf hingewiesen haben. Ich habe es geändert. – Mathias