Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen | VB-Versionen: VB4, VB5, VB6 | 05.07.04 |
Zeitdifferenz zur GMT-Zeitangabe ermitteln Ermittelt die Zeitdifferenz in Stunden zwischen GM-Time und Local-Time | ||
Autor: Ralf Duchna | Bewertung: | Views: 18.551 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sicherlich haben Sie schon einmal folgende Zeitangabe gesehen: 08:45 +02:00
Hierbei wird der Ortszeit die Zeit-Differenz zur GMT-Zeitangabe nachgestellt. Je nach Jahreszeit beträgt diese bspw. in Deutschland 1 Stunde (Winterzeit) oder 2 Stunden (Sommerzeit). Diese Schreibweise findet man bspw. auch im Header von EMails wieder.
Wie man die Zeitdifferenz zwischen GMT-Zeitangabe und Ortszeit ermittelt, das möchten wir Ihnen mit nachfolgendem Tipp zeigen.
' benötigte API-Deklarationen Private Declare Sub GetSystemTime Lib "kernel32" ( _ lpSystemTime As SYSTEMTIME) Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type
' Gibt die Zeitdifferenz zur GMT-Zeitangabe in Stunden zurück ' (für Deutschland: 1 = Winterzeit, 2 = Sommerzeit) Public Function GMTDiff() As Long Dim nDiff As Long Dim st As SYSTEMTIME ' Systemzeit ermitteln GetSystemTime st ' Zeit-Differenz zur GMT-Zeit in Minuten nDiff = DateDiff("n", DateSerial(st.wYear, st.wMonth, st.wDay) + _ TimeSerial(st.wHour, st.wMinute, st.wSecond), Now) ' Zeit-Differenz in Stunden If (nDiff Mod 60) <> 0 Then nDiff = nDiff - 1 GMTDiff = nDiff / 60 End Function
Beispiel:
Dim sGMTime As String sGMTime = Time$ & " " & Format$(GMTDiff(), "+00;-00") & "00"
Tipp:
Durch Abfrage der GMTDiff-Funktion lässt sich sehr schnell feststellen, ob Winterzeit oder Sommerzeit eingestellt ist:
If GMTDiff() = 2 Then MsgBox "Sommerzeit ist eingestellt." Else MsgBox "Winterzeit ist eingestellt." End If