Seite 1 von 1

Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 14:04
von Wolfgang_B
Hi,
gibt es in Xbase eine Funktion zum Umwandeln eines Unix-Timestamps in Datum Zeit? Oder hat jemand schon mal sowas geschrieben?

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 14:32
von Marcus Herz
Unix Timestamp beginnt am 1.1.1970 in Anzahl Sekunden seit diesem Zeitpunkt. Also den PC rechnen lassen

Anzahl Tage * std * sec seit damals: (date() - ctod("01.01.1970")) * 3600 * 24, wie auch immer, bzw anderrum
UNIX Zeitstempel / 3600 / 24 = Anzahl Tage + ctod("01.01.1970"), Rest Std:min:sec

Wenn du aber das Directory einer FTP Verbindung zu einem UNIX Server (zb. mit Xb2Net) abfrägst, kann dort der Zeitstempel verschieden formatiert sein. Ich hab da keine Regel gefunden (die abrufbar wäre), welches UNIX Version welche Zeitformat zurückgibt.

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 14:36
von Wolfgang_B
Hallo Marcus,

das wäre zu einfach. Seit 1970 waren mehrere Schaltjahre. Diese müßten alle berücksichtigt werden. Und das möglichst generisch ...

Man kann das natürlich in Xbase programmieren, aber das will ich mir tunlichst verkneifen.

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 14:39
von Tom

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:06
von Wolfgang_B
Hallo Tom,
ich bräuchte das genau andersrum: Timestamp in Datum Zeit

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:08
von Tom
Das lässt sich aber doch daraus leicht ableiten.

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:10
von Wolfgang_B
stimmt! Danke!

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:17
von nightcrawler

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:26
von Tom
einfach WinAPI
Und welche davon, Joachim?

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Mo, 07. Mär 2022 15:55
von nightcrawler
gerade gesehen, dass es für RtlTimeToSecondsSince1970 keine Umkehrfunktion gibt :(
Ein einfaches C#-Beispiel, evtl geht das auch in Xbase++:

Code: Alles auswählen

DateTime sTime = new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime();
return sTime.AddSeconds(unixtime);
Mit ADS könnte man das zB mit CREATETIMESTAMP( year, month, day, hour, minute, second, millisecond ) und TIMESTAMPADD( interval, int, timestamp ) nachbilden.

Re: Linux Timestamp in Datum Zeit konvertieren

Verfasst: Di, 08. Mär 2022 11:58
von Wolfgang_B
erstmal Danke! Ich glaube es ist einfacher, die Dateien mit den Daten erst mal mit PHP zu bearbeiten und dann einzulesen. Nachdem es eine reine private Auswertung ist - qad :D