Millisekunden in Datum umwandeln



  • Hi!
    Wie bekomme ich das Datum
    zu bestimmten Millisekunden ?

    date format 1080597600 -> datum ???????

    Grüße



  • Du brauchst einen Bezugspunkt, von dem aus du rechnen kannst 😉 Dann kannst du deinen Wert in Sekunden (x/1000), Minuten (x/60000), Stunden (x/3600000), Tage,... umrechnen und von deinem Bezugsdatum aus entsprechend weit vorwärtsgehen.

    (PS: Nach meiner Rechnung entspricht der angegebene Wert ca. 12 1/2 Tagen.



  • CStoll, warum so kompliziert ?

    Wenn ich die Millisekunden zu einem bestimmten Datum haben möchte dann gilt:

    Bespiel
    date --date "2004/03/30" "+%s"
    ergibt
    1080597600

    So alles was ich jetzt möchte ist das was ich oben demonstriert habe in umgekehrte Richtung OK ???
    Mit anderen Worten von Millisekunden nach Datum

    Grüße
    Tauboga



  • Erstens ergibt das keine Millisekunden, sondern Sekunden seit 1.1.1970 😉

    Und zweitens: wirf mal einen (größeren) Blick in die <time.h> (bzw. <ctime>) - da findest du einiges zur Zeitverarbeitung in C.



  • localtime() oder gmtime()



  • Tauboga: %s ist eine GNU-Erweiterung, durch die "00:00:00 1970-01-01 UTC" als Bezugspunkt genommen wird, portabel ist das nicht. Und wie bereits gesagt: Es sind Sekunden, nicht Millisekunden, also einfach Epoch-Time.

    Bei date kann man übrigens das Eingabeformat nicht frei wählen, zumindest steht davon nichts in der Dokumentation. In nahezu jeder gängigen Programmiersprache ist die oben genannte Aufgabe aber trivial, wenn Du Hilfe brauchst, poste einfach nochmal. (Entweder Ringdings Tip befolgen, oder einen Perl-Einzeiler mit mktime verwenden, oder...)


Anmelden zum Antworten