Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen | VB-Versionen: VB6 | 09.12.10 |
Sicherlich haben Sie schon einmal folgende Zeitangabe gesehen: 08:45 +02:00
Hierbei wird der Ortszeit die Zeit-Differenz zur GMT-Zeitangabe (UTC) 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.
Nachfolgend eine Funktion, mit der sich die Zeitdifferenz zwischen GMT-Zeitangabe und Ortszeit ermitteln lässt:
' Ermittelt die Zeit-Differenz zwischen UTC und lokaler Zeit
Public Function UTCTimeoffset() As String
Dim oList As Object
Dim oItem As Object
Dim nMinutes As Long
Dim nHours As Long
Dim sOffset As String
' Fehlerbehandlung
On Error GoTo ErrHandler
Set oList = GetObject( _
"winmgmts:{impersonationLevel=impersonate}").InstancesOf( _
"Win32_ComputerSystem")
For Each oItem In oList
' Zeit-Differenz in Minuten
nMinutes = Abs(oItem.CurrentTimeZone)
' Formatieren nach hh:nn
nHours = Int(nMinutes / 60)
nMinutes = nMinutes - (nHours * 60)
sOffset = Format$(nHours, "00") & ":" & Format$(nMinutes, "00")
sOffset = IIf(oItem.CurrentTimeZone > 0, "+", "-") & sOffset
Exit For
Next
' Objekt freigeben
Set oList = Nothing
On Error GoTo 0
UTCTimeoffset = sOffset
Exit Function
ErrHandler:
UTCTimeoffset = "+00:00"
Set oList = Nothing
End Function