Funktionsreferenz

_Date_Time_SetTimeZoneInformation

Setzt die aktuellen Zeitzonen Einstellungen

#Include <Date.au3>
_Date_Time_SetTimeZoneInformation($iBias, $sStdName, $tStdDate, $iStdBias, $sDayName, $tDayDate, $iDayBias)

 

Parameter

$iBias Der gegenwärtige Bias für die Lokalzeit-Anpassung auf diesem Computer. Der Bias ist die Differenz in Minutenzwischen 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
$sStdName Die Beschreibung der Standardzeit
$tStdDate Eine $tagSYSTEMTIME Struktur, die ein Datum und eine lokale Zeit beinhaltet,
wenn der Übergang von der Sommerzeit zur Standardzeit erfolgt.
$iStdBias Der während der Standardzeit für Anpassungen der lokalen Zeit zu verwendende Biaswert. Um den während der Standardzeit zu verwendenden Bias zu bilden, ist $iStdBias zu dem Biaswert zu addieren. Für die meisten Zeitzonen ist dieser Wert 0.
$sDayName Die Beschreibung der Sommerzeit
$tDayDate Eine $tagSYSTEMTIME Struktur, die ein Datum und eine lokale Zeit beinhaltet,
wenn der Übergang von der Standardzeit zur Sommerzeit erfolgt.
$iDayBias Der während der Sommerzeit für Anpassungen der lokalen Zeit zu verwendende Biaswert. Um den während der Sommerzeit zu verwendenden Bias zu bilden, ist $iDayBias zu dem Biaswert zu addieren. Für die meisten Zeitzonen ist dieser Wert -60.

 

Rückgabewert

Erfolg: True
Fehler: False

 

Bemerkungen

Um den richtigen Tag im Monat auszuwählen ist wYear auf 0 zu setzen, wHour und wMinute auf die Zeitänderung, wDayOfWeek auf 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_GetTimeZoneInformation, $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 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