Wie kann ich in OOo Basic einen unix timestamp erstellen? Die Funktionen now() oder date() liefern das Datum ja eher im Klartext.
Gibts vielleicht ne Funktion die das umrechnet? Oder muss ich mir die selbst schreiben?
unix timestamp erstellen
Moderator: Moderatoren
Re: unix timestamp erstellen
Ich habs jetzt mal so gemacht:
Scheint zu klappen. Aber gibts da trotzdem vielleicht was "offizielles"?
Code: Alles auswählen
Function Timestamp() As Long
Timestamp = DateDiff("s", "1.1.1970 0:00:00", Now())
End Function
Re: unix timestamp erstellen
Hey ush189,
Probiere es aus:
Nur: eine Date-Variabel wird bei Ausgaben (Print, msgbox oder so) in einen lesbaren String verwandelt. Intern bleibt es aber eine Zahl.
Gruss
Thomas
Nein. Das kommt darauf an, was du damit machtst. Zumindest now() liefert exakt die interen Datums/Zeitzahl...Die Funktionen now() oder date() liefern das Datum ja eher im Klartext.
Probiere es aus:
Code: Alles auswählen
Sub ZeitDatumAuslesen
dim d as date
dim n as double
d = now()
n = now()
msgbox d & chr(13) & n
End Sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: unix timestamp erstellen
Hi Thomas,
ich hab deine Funktion mal ausprobiert. Aber die liefert mir für n einen Wert von circa 39.350.
Keine Ahnung was das darstellen soll. Von der Größenordnung wäre es am ehesten die Anzahl der Tage. Aber das passt auch nicht.
ich hab deine Funktion mal ausprobiert. Aber die liefert mir für n einen Wert von circa 39.350.
Keine Ahnung was das darstellen soll. Von der Größenordnung wäre es am ehesten die Anzahl der Tage. Aber das passt auch nicht.
Re: unix timestamp erstellen
Hey Ush189,
n zeigt dir genau diesen "Timestamp" - als interen zahl. d hingegen die formatierte Ausgabe als String.
Gruss
Thomas
Doch, genau das ist es. So wie alle Ofice-Programme wird die interen Zeit/Datum als fortlaufende Zahl der Tage (vor dem Komma) gezählt - und zwar je nach System üblicherweise mit Startpunkt 30.12.1899. Die nachkommastellen hingegen weisen die aktuelle Zeit auf, und zwar in der Form, dass 24 Stunden genau 1 ergeben, also 12 Stunden 0,5 und so weiter. Auf dieser Basis wierd alles berechnet, d.h. OOo verwendet genau diese Zahl intern als Datumsvariabel (wie in Calc, aber auch in Excel oder so).Von der Größenordnung wäre es am ehesten die Anzahl der Tage. Aber das passt auch nicht.
n zeigt dir genau diesen "Timestamp" - als interen zahl. d hingegen die formatierte Ausgabe als String.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: unix timestamp erstellen
ist das "inoffiziell"?ush189 hat geschrieben:Aber gibts da trotzdem vielleicht was "offizielles"?
Im Ernst: nein, es gibt keine Basic-Funktion, die dir das Ergebnis direkt liefert.
Dir ist klar, dass das Unix timestamp keine Rücksicht auf Schaltsekunden nimmt, eine an OOo anschlossene Atomuhr mit der NOW-Funktion aber schon.....
Sollte vernachlässigbar sein

Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)