UnixTime zum lesbaren Datum

8

Was ist der beste Weg, um UnixTime in ein Datum zu konvertieren?

Gibt es eine Funktion oder einen Algorithmus?

    
SuperUser 23.11.2012, 23:31
quelle

4 Antworten

13

Unix-Zeit ist Sekunden seit der Epoche (1970-01-01). Je nachdem, was du meinst, kannst du es mit localtime oder in struct tm umwandeln wandle es mit strftime in einen String um.

%Vor%

Wie das Handbuch zu localtime angibt

  

Der Rückgabewert zeigt auf einen statisch zugewiesenen Wert   Struktur, die durch nachfolgende Aufrufe an eines der   Datums- und Uhrzeitfunktionen.

Dies wird als Datenrennen bezeichnet. Dies geschieht, wenn zwei oder mehr Threads localtime gleichzeitig aufrufen.

Um dies zu vermeiden, schlagen einige vor, localtime_s zu verwenden, was eine Microsoft-Funktion ist. Auf POSIX-Systemen sollten Sie stattdessen localtime_r verwenden

  

Die Funktion localtime_r () macht dasselbe,   speichert die Daten jedoch in einer benutzerdefinierten Struktur.

Die Verwendung würde aussehen wie

%Vor%     
Olaf Dietsche 23.11.2012, 23:38
quelle
3

Ich gehe davon aus, dass Sie die Zeit in time_t haben. Zuerst müssen Sie das in ein struct tm konvertieren. Sie können dies mit localtime oder gmtime , abhängig davon, ob Sie die lokale Zeitzone oder GMT verwenden möchten.

Dann können Sie das struct tm als String mit strftime formatieren. Um beispielsweise ein Datum wie 2012-11-24 zu erhalten, verwenden Sie das Format "%Y-%m-%d" .

    
melpomene 23.11.2012 23:44
quelle
0

Siehe auch Konvertieren von Unix / Linux-Zeit zu Windows FILETIME

Diese Funktion sollte von UnixTime in Windows SYSTEMTIME

konvertieren %Vor%     
Michael Haephrati 02.01.2017 12:53
quelle
-1

Versuchen Sie Zeit mit lokale Zeit . Dort finden Sie ein Beispiel. Wenn es nicht klar ist, zögern Sie nicht, mir irgendwelche Fragen zu stellen.

    
omaruly 23.11.2012 23:37
quelle

Tags und Links