Funktionsreferenz

_Date_Time_GetTimeZoneInformation

Ermittelt die aktuellen Zeitzonen Einstellungen

#Include <Date.au3>
_Date_Time_GetTimeZoneInformation()

 

Parameter

Keine.

 

Rückgabewert

Erfolg: Array mit dem folgenden Format:
    [0] - Sommerzeit Einstellungen. Kann einen der folgenden Werte annehmen:
    -1 - Fehler
    0 - Sommerzeit wird in der aktuellen Zeitzonen Einstellung nicht verwendet
    1 - Sommerzeit arbeitet mit der Standardzeit
    2 - Sommerzeit arbeitet mit der Sommerzeit
    [1] - Der aktuelle Bias für die Umsetzung der lokalen Zeit. Der Bias ist die Differenz in Minuten zwischen der Universal Time Coordinated (UTC) und der lokalen Zeit. Alle Umsetzungen zwischen UTC und der lokalen Zeit verwenden die folgende Formel: UTC = lokale Zeit + Bias
    [2] - Die Beschreibung der Standardzeit
    [3] - Eine $tagSYSTEMTIME Struktur, die ein Datum und eine lokale Zeit beinhaltet, wenn eine Differenz zwischen lokaler und Sommerzeit entsteht.
    [4] - Der Bias Wert, der verwendet wird, während Anpassungen an die lokale Zeit während der Standardzeit vorgenommen werden. Dieser Wert wird zum Wert des Bias addiert um diesen während der Standardzeit zu verwenden. In den meisten Zeitzonen ist dieser Wert 0.
    [5] - Die Beschreibung der Sommerzeit
    [6] - Eine $tagSYSTEMTIME Struktur, die ein Datum und eine lokale Zeit beinhaltet, wenn die Änderung von Standardzeit zu Sommerzeit erfolgt.
    [7] - Der Bias Wert der verwendet wird, während der Änderung von lokaler Zeit zu Sommerzeit. Dieser Wert wird zu dem Bias Wert addiert, der während der Sommerzeit verwendet wird. In den meisten Fällen ist dieser Wert -60.

 

Bemerkungen

In der $tagSYSTEMTIME Struktur stellt wHour und wMinute die Zeitänderung, wDayOfWeek den zugehörigen Wochentag und wDay die Anzahl der Tage innerhalb des Monats. (1 bis 5, wobei 5 das letzte Auftreten während des Monats darstellt falls dieser Wochentag wengier als 5 Mal auftritt).

Anmerkung:
Um 02:00 auf den ersten Sonntag im April festzulegen sind folgende Werte notwendig: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1.
Um 02:00 auf den letzten Donnerstag im Oktober festzulegen sind folgende Werte notwendig: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.

 

Verwandte Funktionen

_Date_Time_SetTimeZoneInformation, $tagSYSTEMTIME

 

Beispiel


#include <GuiConstantsEx.au3>
#include <Date.au3>
#include <WindowsConstants.au3>

; Unter Vista muß die Windows API "SetTimeZoneInformation" möglicherweise von der Systemsicherheit ausgenommen werden

Global $iMemo

_Main()

Func _Main()
    Local $hGUI, $aOld, $aNew

    ; Erstellt eine GUI
    $hGUI = GUICreate("Zeit", 400, 500)
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 496, $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

    ; Zeige Infos über die aktuelle Zeitzone
    $aOld = _Date_Time_GetTimeZoneInformation ()
    ShowTimeZoneInformation($aOld,"Current")

    ; Setzt die neue Zeitzone
    If Not _Date_Time_SetTimeZoneInformation ($aOld[1], "A3L CST", $aOld[3], $aOld[4], "A3L CDT", $aOld[6], $aOld[7]) Then
        MsgBox(4096, "Fehler", "Die Systemzeit kann nicht gesetzt werden" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
        Exit
    EndIf

    ; Zeige Infos über die neue Zeitzone
    $aNew = _Date_Time_GetTimeZoneInformation ()
    ShowTimeZoneInformation($aNew, "New")

    ; Setzt auf originale Zeitzone zurück
    _Date_Time_SetTimeZoneInformation ($aOld[1], $aOld[2], $aOld[3], $aOld[4], $aOld[5], $aOld[6], $aOld[7])

    ; Zeige Infos über die aktuelle Zeitzone
    $aOld = _Date_Time_GetTimeZoneInformation ()
    ShowTimeZoneInformation($aOld, "Reset")

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
   
EndFunc   ;==>_Main

; Gibt eine Zeile im Memo-Fenster aus
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

; Zeige Details der Zeitzone an
Func ShowTimeZoneInformation(ByRef $aInfo, $comment)
    MemoWrite("******************* " & $comment & " *******************")
    MemoWrite("Ergebnis ...................: " & $aInfo[0])
    MemoWrite("Aktuelle Verschiebung ......: " & $aInfo[1])
    MemoWrite("Standardname ...............: " & $aInfo[2])
    MemoWrite("Standard Datum/Zeit ........: " & _Date_Time_SystemTimeToDateTimeStr ($aInfo[3]))
    MemoWrite("Standard Verschiebung ......: " & $aInfo[4])
    MemoWrite("Sommerzeit Name ............: " & $aInfo[5])
    MemoWrite("Sommerzeit Datum/Zeit ......: " & _Date_Time_SystemTimeToDateTimeStr ($aInfo[6]))
    MemoWrite("Sommerzeitverschiebung .....: " & $aInfo[7])
EndFunc   ;==>ShowTimeZoneInformation