Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen | VB-Versionen: VB5, VB6 | 03.05.02 |
Unix-Timestamp nach VB-Date konvertieren Eine Funktion, die eine Unix-Timestamp Angabe in ein lesbares VB-Date umwandelt. | ||
Autor: Dieter Otter | Bewertung: | Views: 29.901 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Eine Unix-Timestamp zählt die Anzahl vergangener Sekunden seit dem Beginn der Unix-Epoche (01.01.1970). Wie man eine solche Unix-Timestamp in ein lesbares Datum/Zeitformat umwandeln, das verrät Ihnen nachfolgender Tipp.
Überlegung...
Wie lassen sich nun die Sekunden - und zwar seit dem 01.01.1970 - in Tag, Monat, Jahr, Stunde, Minute und Sekunde umwandeln?
Manch einer würde jetzt sicherlich auf folgende Idee kommen: Man rechnet die Sekunden zunächst in Minuten um, die Minuten wiederum in Stunden, die Stunden in Tage, die Tage in Jahre (aber Vorsicht - Schaltjahre berücksichtigen!). Die einzelnen Restwerte werden dann wieder zurückgerechnet - auf Monate, Tage, Stunden usw.
Aber warum so kompliziert?
Visual Basic bietet uns für Datum/Zeitberechnungen doch hervorragende Funktionen!
Da wäre u.a. die DateAdd-Funktion, mit der wir zu einem bestehenden Datum ein beliebiges Intervall (Jahre, Monate, Tage, Stunden usw.) hinzuaddieren können. Wenn wir also zum 01.01.1970 (Beginn der Unix-Epoche) die Unix-Timestamp (Sekunden) hinzuaddieren, erhalten wir als Rückgabe das gewünschte Ergebnis - eine Datums/Zeitangabe, unter der wir uns etwas vorstellen können.
Und hier die Umsetzung...
' Unix-Timestamp in lesbares Datum/Zeit konvertieren ' (VB-Date) Public Function VB_CTime(ByVal dblSec As Double) As Variant ' dblSec = vergangene Sekunden seit 1.1.1970 Dim vStart As Variant ' Fehlerbehandlung einschalten, falls ' dblSec außerhalb des Gültigkeitbereichs On Error Resume Next vStart = DateSerial(1970, 1, 1) VB_CTime = DateAdd("s", dblSec, vStart) End Function