Seite 1 von 1

unix timestamp erstellen

Verfasst: Mi, 26.09.2007 14:27
von ush189
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?

Re: unix timestamp erstellen

Verfasst: Mi, 26.09.2007 14:39
von ush189
Ich habs jetzt mal so gemacht:

Code: Alles auswählen

Function Timestamp() As Long
	Timestamp = DateDiff("s", "1.1.1970 0:00:00", Now())
End Function
Scheint zu klappen. Aber gibts da trotzdem vielleicht was "offizielles"?

Re: unix timestamp erstellen

Verfasst: Do, 27.09.2007 08:40
von Toxitom
Hey ush189,
..Die Funktionen now() oder date() liefern das Datum ja eher im Klartext.
Nein. Das kommt darauf an, was du damit machtst. Zumindest now() liefert exakt die interen Datums/Zeitzahl.

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
Nur: eine Date-Variabel wird bei Ausgaben (Print, msgbox oder so) in einen lesbaren String verwandelt. Intern bleibt es aber eine Zahl.

Gruss
Thomas

Re: unix timestamp erstellen

Verfasst: Do, 27.09.2007 13:38
von ush189
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.

Re: unix timestamp erstellen

Verfasst: Do, 27.09.2007 16:15
von Toxitom
Hey Ush189,
Von der Größenordnung wäre es am ehesten die Anzahl der Tage. Aber das passt auch nicht.
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).
n zeigt dir genau diesen "Timestamp" - als interen zahl. d hingegen die formatierte Ausgabe als String.

Gruss
Thomas

Re: unix timestamp erstellen

Verfasst: Do, 27.09.2007 17:01
von komma4
ush189 hat geschrieben:Aber gibts da trotzdem vielleicht was "offizielles"?
ist das "inoffiziell"?
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 :-)