Heim > Backend-Entwicklung > C++ > Wie kann ich die strptime()-Funktionalität unter Windows implementieren?

Wie kann ich die strptime()-Funktionalität unter Windows implementieren?

Susan Sarandon
Freigeben: 2024-12-22 14:20:11
Original
165 Leute haben es durchsucht

How Can I Implement strptime() Functionality on Windows?

strptime() für Windows

strptime() ist eine POSIX-Funktion, die häufig zum Parsen von Textzeichenfolgen in tm-Strukturen verwendet wird. Leider ist diese Funktion unter Windows nicht verfügbar.

Alternative Implementierungen

Wenn Sie nach einer guten gleichwertigen Implementierung von strptime() für Windows suchen, finden Sie hier eine Lösung das die Funktionen sscanf, struct tm und mktime nutzt:

  1. Parsen Sie das Datum mit sscanf.
  2. Kopieren Sie die Ganzzahlen in eine Struktur tm und berücksichtigen Sie dabei die Tatsache, dass Monate 0-indiziert sind und Jahre im Jahr 1900 beginnen.
  3. Verwenden Sie abschließend mktime, um eine UTC-Epochen-Ganzzahl zu erhalten.

Denken Sie daran, das isdst-Mitglied der Struktur tm auf -1 zu setzen, um Sommerzeit zu vermeiden Probleme.

Beispiel

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

int main() {
    char *date_str = "MM-DD-YYYY HH:MM:SS";

    struct tm tm;
    sscanf(date_str, "%d-%d-%d %d:%d:%d", &tm.tm_mon, &tm.tm_mday, &tm.tm_year, &tm.tm_hour, &tm.tm_min, &tm.tm_sec);

    tm.tm_mon -= 1;  // Adjust for zero-indexing
    tm.tm_year -= 1900;  // Adjust for 1900 starting year

    time_t epoch = mktime(&tm);

    printf("Epoch: %ld\n", epoch);

    return 0;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die strptime()-Funktionalität unter Windows implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage