Filetime in UnixTime umwandeln Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Filetime in UnixTime umwandeln

19 Apr 2023, 15:47

Guten Abend,
ich habe ein Timestamp z.B 13325973344824272
Wie kann ich den Wert in UnixTime umwandeln und anschließend für Menschen lesbare Zeit umzurechnen?
Ich habe etwas herum recherchiert, fand folgendes:

Code: Select all

MsgBox, % Clipboard := UnixTimeStamp(13325973344824272)

UnixTimeStamp(FileTime) {
   Static UnixStart := 116444736000000000
   Return (FileTime - UnixStart) // 10000000
}
erhalte immer einen negativen Wert.
Komme irgendwie nicht weiter, hoffe jemand kann mir helfen.

Vielen Dank schonmal.
just me
Posts: 9466
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Filetime in UnixTime umwandeln  Topic is solved

20 Apr 2023, 05:04

Moin,

hier werden anscheinend unterschiedliche Maßeinheiten vermischt. Deine Variable UnixStart enthält die Zeitdifferenz zwischen dem 01.01.1601 und dem 01.01.1970 in Intervallen von 100 Nanosekunden. Dein Timestamp enthält einen deutlich kleineren Wert. Die Datei wurde deshalb entweder vor dem 01.01.1970 erstellt oder der Zeitstempel hat eine andere Maßeinheit.
Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Re: Filetime in UnixTime umwandeln

20 Apr 2023, 14:51

vielen Dank!
habe angepasst, jetzt klappt es.
effel
Posts: 546
Joined: 16 Jan 2018, 13:34

Re: Filetime in UnixTime umwandeln

25 Apr 2023, 18:59

Nussbeisser wrote:
20 Apr 2023, 14:51
habe angepasst, jetzt klappt es.
Hallo @Nussbeisser darf ich frage wo du diesen TimeStamp her hast?

In den INI Dateien die Everything verwendet finde ich auch ähnliches.

Nur das meiner eine Stelle mehr hat.

Search History-1.5a.csv
Search,Search Count,Last Search Date
V:\ | M:\ | K:\ .ahk | .xml | .txt !.lnk,29,132665703786844208
c:\ .ahk,8,132654739884608279
....


Hast du eine Lösung gefunden?
Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Re: Filetime in UnixTime umwandeln

26 Apr 2023, 12:07

Hi, hier ist meine Lösung:

Code: Select all

wannBenutzt := 13325973344824272

wannBenutzt := unixTimeStamp(wannBenutzt)
wannBenutzt := unix2Human(wannBenutzt)
FormatTime, wannBenutzt ,% wannBenutzt, dd.MM.yyyy HH:mm:ss

MsgBox, % wannBenutzt


unix2Human(unixTimestamp) {
	returnDate = 19700101000000
	returnDate += unixTimestamp, s
	return returnDate
}

formatSeconds(NumberOfSeconds){
    time = 19990101  ; *Midnight* of an arbitrary date.
    time += %NumberOfSeconds%, seconds
    FormatTime, hhmmss, %time%, mm:ss
    return % hhmmss
}

unixTimeStamp(FileTime) {
   Static UnixStart := 11644473600000000
   Return (FileTime - UnixStart) // 1000000
}

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 31 guests