Seite 1 von 2
FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 16:35
von rammi22
Hallo,
gibt es eine Funktion, welche mir das Erstellungsdatum einer Datei im
unix-Format wiedergibt?
Code: Alles auswählen
Sub Main
Dim filePath As String
Dim fileName As String
Dim fileTime As String
filePath = "/home/rammi/Schreibtisch/Scanner/scan/"
fileName = "S30BW-0i22090909391.pdf"
fileTime = FileDateTime(filePath + fileName)
MsgBox fileTime
End Sub
Re: FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 17:22
von F3K Total
Moin, versuch mal:
Code: Alles auswählen
Sub Main
Dim filePath As String
Dim fileName As String
Dim fileTime As String
filePath = "/home/rammi/Schreibtisch/Scanner/scan/"
fileName = "S30BW-0i22090909391.pdf"
fileTime = FileDateTime(filePath + fileName)
UnixTimeStamp =(cdate(fileTime) - 25569)*86400
MsgBox fileTime
MsgBox UnixTimeStamp
End Sub
Gruß R
Re: FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 18:23
von rammi22
F3K Total hat geschrieben: Mo, 19.09.2022 17:22
Moin, versuch mal:
...
Konvertiert, Danke.
Also, native gibt es da nix?
Re: FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 19:29
von Karolus
Ich weiss ja, python ist zu kompliziert für den php-Entwickler
Code: Alles auswählen
from time import mktime, localtime
print(int(mktime(localtime())))
oder
Code: Alles auswählen
from pathlib import Path
filePath = "/home/rammi/Schreibtisch/Scanner/scan/"
fileName = "S30BW-0i22090909391.pdf"
p = Path(filePath) / fileName
print(f'timestamp: {int(p.stat().st_mtime + 7200)}')
#besser:
print(f'timestamp: {p.stat().st_mtime + 7200: .0f}')
Normalweise basieren unix-timestamps auf utc und nicht auf Lokalzeit?
wie auch immer ich hab mal 2 Stunden (7200sec) dazuaddiert
Re: FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 20:37
von rammi22
Karolus hat geschrieben: Mo, 19.09.2022 19:29
Ich weiss ja, python ist zu kompliziert für den php-Entwickler
Wer sagt/schreibt das?
Re: FileDateTime als unix timestamp
Verfasst: Mo, 19.09.2022 20:45
von Karolus
rammi22 hat geschrieben: Mo, 19.09.2022 20:37
Karolus hat geschrieben: Mo, 19.09.2022 19:29
Ich weiss ja, python ist zu kompliziert für den php-Entwickler
Wer sagt/schreibt das?
Du demonstriest das täglich aufs neue indem du hier auf Basic-code bestehst.
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 07:23
von rammi22
Karolus hat geschrieben: Mo, 19.09.2022 20:45
...
Du demonstriest das täglich aufs neue indem du hier auf Basic-code bestehst.
Ich kann da jetzt keinen Zusammenhang erkennen, warum "...python ist zu kompliziert für den php-Entwickler" wäre. Und noch weniger erkenne ich einen Kontext zur eigentlichen Frage.
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 09:13
von Karolus
rammi22 hat geschrieben: Di, 20.09.2022 07:23
Und noch weniger erkenne ich einen Kontext zur eigentlichen Frage.
Dann versuche mal den "Kontext" auf deine Themen seit letzten Samstag zu erweitern.
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 09:47
von Hiker
rammi22 hat geschrieben: Mo, 19.09.2022 18:23....
Also, native gibt es da nix?
Natürlich gibt es entsprechende Funktionen im Quellcode von LO, aber diese "nativen" Funktionen sind nicht von Basic aus ansprechbar.
Und weder BASIC noch UNO sind mit Hinblick auf unixoide Systeme entwickelt worden. Also ist Unix-Timestamp kein default...
Mfg, J.
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 10:09
von Karolus
Hiker hat geschrieben: Di, 20.09.2022 09:47
Natürlich gibt es entsprechende Funktionen im Quellcode von LO, aber diese "nativen" Funktionen sind nicht von Basic aus ansprechbar.
Natürlich benutzt Basic diese "nativen" Funktionen zum Abfragen der Datei-metadaten, die Funktion
FileDateTime rechnet das aber
"""benutzerfreundlich
""" um in das Calc/Basic-Datumsmodell.
Dem Benutzer bleibt es dann überlassen in den ursprünglichen Wert zurückzurechnen.
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 10:14
von rammi22
Karolus hat geschrieben: Di, 20.09.2022 09:13
Dann versuche mal den "Kontext" auf deine Themen seit letzten Samstag zu erweitern.
Was ist
dein Argument
gegen Basic? Und warum benutzt du diesen Beitrag, um deine Ansichten über PHP-Entwickler und deren Unvermögen im Zusammenhang mit Python-Skripten zu manifestieren? Meinst du nicht, das so etwas besser in einer PN diskutiert werden sollte?
Re: FileDateTime als unix timestamp
Verfasst: Di, 20.09.2022 11:32
von Karolus
rammi22 hat geschrieben: Di, 20.09.2022 10:14
Und warum benutzt du diesen Beitrag, um deine Ansichten über PHP-Entwickler und deren Unvermögen im Zusammenhang mit Python-Skripten zu manifestieren? Meinst du nicht, das so etwas besser in einer PN diskutiert werden sollte?
sorry das geht jetzt etwas in eine falsche Richtung, ich möchte weder PHP-entwickler im allgemeinen noch dich persönlich angreifen!
per PN? gerne!
rammi22 hat geschrieben: Di, 20.09.2022 10:14
Was ist dein Argument gegen Basic?
Na ja … python wird schon sehr lange mit LO (mitgeliefert |bzw. benutzt LO die Python-umgebung des Betriebsystems***) , zusätzlich gibts inzwischen mit der Erweiterung
apso.oxt auch einen gut benutzbaren Dialog zum Verwalten und Organisieren von Python.
Für
mich gibts halt im Kontext Datei-TimeStamp oder shell (x y) kein Argument das
für Basic spräche.
***das gilt für alle LO-pakete die mit diversen Linux-distributionen ausgeliefert werden.
Re: FileDateTime als unix timestamp
Verfasst: Mi, 21.09.2022 11:54
von Karolus
F3K Total hat geschrieben: Mo, 19.09.2022 17:22
Moin, versuch mal:
Code: Alles auswählen
Sub Main
Dim filePath As String
Dim fileName As String
Dim fileTime As String
filePath = "/home/rammi/Schreibtisch/Scanner/scan/"
fileName = "S30BW-0i22090909391.pdf"
fileTime = FileDateTime(filePath + fileName)
UnixTimeStamp =(cdate(fileTime) - 25569)*86400
MsgBox fileTime
MsgBox UnixTimeStamp
End Sub
Gruß R
@F3K Total:
Ich möchte keine Haare spalten, aber ich fürchte der Wert der hier zurückgegeben wird ist aus technischer Sicht falsch, weil
FileDateTime nicht nur umrechnet ins Calc-schema, sondern auch noch in Lokalzeit umrechnet ??
Da fehlt dann eine im besten Fall Datums/Zeitzonen-unabhängige umrechnung in utc-zeit.
Wenns nur ums vergleichen geht und der Vergleichswert auf die selbe Art ermittelt wird ist es letzlich egal, aber auch die Umrechnerei wäre dann überflüssig…
Re: FileDateTime als unix timestamp
Verfasst: Do, 22.09.2022 08:00
von Hiker
Karolus hat geschrieben: Di, 20.09.2022 10:09
..., die Funktion
FileDateTime rechnet das aber
"""benutzerfreundlich
""" um in das Calc/Basic-Datumsmodell.
Dem Benutzer bleibt es dann überlassen in den ursprünglichen Wert zurückzurechnen.
Ob man unter Windows oder MacOS von "zurückrechnen" reden kann? MacOS ist zwar inzwischen "unixoid", aber ich habe keine Ahnung, was Apple im Detail in seinem HPFS speichert...
Re: FileDateTime als unix timestamp
Verfasst: Do, 22.09.2022 09:47
von Karolus
Hiker hat geschrieben: Do, 22.09.2022 08:00
Karolus hat geschrieben: Di, 20.09.2022 10:09
..., die Funktion
FileDateTime rechnet das aber
"""benutzerfreundlich
""" um in das Calc/Basic-Datumsmodell.
Dem Benutzer bleibt es dann überlassen in den ursprünglichen Wert zurückzurechnen.
Ob man unter Windows oder MacOS von "zurückrechnen" reden kann? MacOS ist zwar inzwischen "unixoid", aber ich habe keine Ahnung, was Apple im Detail in seinem HPFS speichert...
unix-epoch war schon etabliert, als Bill Gates verfügbare Software mit heisser Nadel umgestrickt hat, so systemnahe Dinge hat der nicht neu erfunden.
Laut Python-dokumentation ist m_time definiert mit "Zeitpunkt der letzten inhaltlichen Änderung" auch in Windows, MacOs wird nicht explizit erwähnt, daher machen die vmtl. keine Extralocken.
Ein Problem war ja das windows bis mindestens Windows 98 die Systemzeit
hart umgestellt hat auf die Lokalzeit.
Ich hatte damals (bis ca. 2012) ein Dualboot-system, bei einem Windows-boot war (scheinbar) alles richtig, nur wenn ich danach Linux gebootet hatte, musste ich jedesmal die Zeit um ein bis zwei Stunden
zurückstellen, irgendwann hab ich dann Windows in eine VM gesteckt und hatte fortan ein Linux das immer die richtige Zeit hatte, und auch Sommer/Winterzeit ohne mein Zutun umgestellt hat.
Inzwischen ist auch Windows in der VM längst Geschichte.
Laut deiner Signatur kannst du ja beide Versionen auf Windows vergleichen, ergeben die gleiche oder unterschiedliche Werte?