vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen   |   VB-Versionen: VB609.12.10
Zeitdifferenz zur UTC-Zeit ermitteln

Ermittelt die Zeitdifferenz in Stunden und Minuten zwischen GM-Time (UTC) und Local-Time

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  10.802 
www.tools4vb.deSystem:  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 (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