Unixtimestamp als Int to String



  • Hallo,

    ich habe schon gesucht aber leider nichts gefunden, kann mir vieleicht jemand sagen wie ich einen Unixtimestamp den ich als Int habe in einen formatierten String bekomme?

    Mfg
    Piet



  • Schau dir mal sprintf an.
    Damit kannst du relativ leicht ints in string
    konvertieren.
    Und auch eine entsprechende Formatierung
    kannst du so leicht erstellen.



  • vertehe ich richtig, dass du die char-representation einer unix-zeit haben willst? das geht am einfachsten, wenn du den unix-timestamp mittels localtime() in einer c-timestamp umwandelst, den du dann mit asctime() in die lokale deutung des datums umwandelst.
    also:

    datum_string=asctime(localtime(deine_unixzeit));
    


  • @ghorst:
    so klappts leider nicht.

    ich habe die Zeit als

    i_timestamp = atoi(c_tstamp);
    

    Den Timestamp habe ich ursprünglich als Char über einen TCP Socket empfangen.

    string s_Send;
    s_Send=asctime( localtime(i_timestamp) );
    

    führt leider zu

    error C2664: 'localtime' : cannot convert parameter 1 from 'int' to 'const time_t *'
    

    Hast du vieleicht noch eine Idee?

    Mit sprintf habe ichs leider auch noch nicht geschafft den Stamp sinnvoll zu formatieren.



  • Piet2007 schrieb:

    i_timestamp = atoi(c_tstamp);
    

    Den Timestamp habe ich ursprünglich als Char über einen TCP Socket empfangen.

    atoi erwartet ja auch char*, nicht char, und ein kompletter UNIX-Timestamp passt in einen char sowieso nicht rein.
    Oder meinst Du "...habe ich ursprünglich als Zeichenkette über..."?
    -scnr-

    Zu localtime: Da localtime einen Zeiger erwartet, musst Du hier den Umweg über eine temp. Variable gehen. Die sollte darüberhinaus vom Typ time_t sein (der ist unsigned im Gegensatz zu int).

    time_t i_timestamp = ...;
    string s_time = asctime(localtime(&i_timestamp));
    


  • @LordJaxom:
    Danke, ich werds mal über den tmp umweg versuchen.
    Ja ich meinte natürlich eine Zeichenkette, genauer ist es natürlich ein Char Array mit entsprechender Länge, sodass der komplette Timestamp reinpasst.


Anmelden zum Antworten