Benötige Datum / Zeit in YYYYMMDDHHMMSS



  • Hallo,
    bin relativ neu in Bereich C++

    Habn bissel Erfahrung mit VB

    Das gibt es eine Funktion

    Format$(now, YYYYMMDDHHMMSS) und fertig.

    Gibt es so etwas in C++ auch? Finde in der Hilfe nicht viel.

    Gruß 😉



  • In der time.h gibt es einige Funktionen für Datum + Zeit, aber wie du damit
    genau dein oben gennantes Format bekommst weiß ich auch grad nicht.

    Für so eine Ausgabe:

    Tue Nov 13 22:47:24 2007
    

    geht es so:

    #include <string>
    #include <time.h>
    using namespace std;
    
    int main(void){
    
        string Date;
        time_t sysTime;
    
        time(&sysTime);
        Date = ctime(&sysTime);
    
        return 0;
    }
    

    Edit:

    Habe grad nochmal nach geschaut in der windows.h gibt es auch noch ein
    GetSystemTime(), vielleicht ist das ja eher was für deine Zwecke. Über diese
    Funktion wird aktuelles Datum + Zeit in einer Struktur gespeichert über die
    du dann auf die einzelnen Werte zugreifen kannst.

    #include <windows.h>
    #include <iostream>
    using namespace std;
    
    int main(void){
    
        SYSTEMTIME systime;
        GetSystemTime(&systime);
    
        cout<<systime.wYear<<" "
            <<systime.wMonth<<" "
            <<systime.wDay<<" "
            <<systime.wHour<<":"
            <<systime.wMinute<<":"
            <<systime.wSecond
            <<endl;
    
        return 0;
    }
    

    Ausgabe wäre hier:

    YYYY MM DD HH:MM:SS
    

    ...



  • Hallo

    Da du im Builder-Forum fragst : Schau dir die Klasse TDateTime und deren Methoden in der Builder-Hilfe an, da ist alles was du dazu brauchst.

    bis bald
    akari



  • moin,
    also das erste klappt. jedoch stimmt etwas mit der zeit net. um 10:24 wurde 9:24 angezeigt.

    Weiterhin brauche ich 09:24

    die 2. Methode werd ich mir gleich mal ansehen.

    thx schon einmal



  • Now().FormatString("YYYYMMDDHHMMSS")
    


  • hab ne Lösung gefunden...

    char timeString[15];

    //Aktuelle Zeit und Datum
    time_t t = time(0);
    tm *curTime = localtime(&t);

    //Formatierung um Ausgabe
    strftime(timeString, 15, "%Y%m%d%H%M%S", curTime);
    cout << timeString << "\n";

    20071114110226

    Gruß und dankeschön



  • now schrieb:

    Now().FormatString("YYYYMMDDHHMMSS")
    

    das ist ja noch kürzer. liegt das auch in der time.h?



  • Hallo

    Nein das ist aus der Builder-VCL, und eine Anwendung vom besagten TDateTime. Wenn du ein VCL-Projekt hast kannst du diese Zeile ohne weitere Includes verwenden.

    Die andere WinAPI-Variante solltest du nur verwenden wenn du ein einfaches Konsolenprogramm ohne VCL-Unterstützung schreibst.

    bis bald
    akari



  • moin,
    ist ein einfaches konsolenprogramm, welches eine txt datei füllen soll

    gruß und danke


Anmelden zum Antworten