Systemzeit aus WCHAR* setzen



  • Hallo Leute,

    ich habe einen WCHAR* mit einer Zeitangabe im Format hh🇲🇲ss, also z.B. "10:30:50"

    Auf diese Zeit soll mein System eingestellt werden.
    Die Ländereinstellungen sind Deutsch, d.h. ob das Format passt etc. muss nicht zuerst geprüft werden.

    Klingt nach einer einfachen Aufgabe - nur, wie kriege ich das hin?

    Muss ich den WCHAR aufwändig in seine Bestandteile zerlegen und ein SYSTIME daraus bauen, das ich dann SetLocalTime() übergeben kann?
    Wenn ja, wie mache ich das?

    Bin über jede Hilfe dankbar, da ich die Funktion möglichst rasch benötige, aber irgendwie nicht drauf komme 😕

    Gruß & Danke
    Frank



  • franky.b schrieb:

    Muss ich den WCHAR aufwändig in seine Bestandteile zerlegen und ein SYSTIME daraus bauen, das ich dann SetLocalTime() übergeben kann?
    Wenn ja, wie mache ich das?

    Also so habe ich es zumindest gemacht. Vielleicht gibt es ja noch ne andere Möglichkeit?

    Das zerlegen ist doch eigentlich einfach bei diesem Format.
    Du könntest zum Beispiel:

    char time[10] = "12:30:45"
    char temp[3];
    SYSTEMTIME systime;
    
    temp[0] = time[0]; temp[1] = time[1]; temp[2] = '\0';
    systime.wHour = atoi(temp);
    
    ... usw.
    

    Oder das müsste doch auch mittels sscanf funktionieren.
    Und es gibt bestimmt auch noch andere Wege 🙂

    MfG schirrmie



  • jap, habs jetzt auch so "manuell" gemacht!
    danke!


Anmelden zum Antworten