TimeZoneInfo.ClearCachedData Methode

Definition

Löscht zwischengespeicherte Zeitzonendaten.

public:
 static void ClearCachedData();
public static void ClearCachedData ();
static member ClearCachedData : unit -> unit
Public Shared Sub ClearCachedData ()

Hinweise

Zwischengespeicherte Zeitzonendaten umfassen Daten in der lokalen Zeitzone und der Utc-Zone (Coordinated Universal Time).

Sie können die ClearCachedData Methode aufrufen, um den Speicher zu reduzieren, der dem Cache der Zeitzoneninformationen der Anwendung gewidmet ist, oder um die Tatsache widerzuspiegeln, dass sich die Zeitzone des lokalen Systems geändert hat.

Das Speichern von Verweisen auf die lokalen und UTC-Zeitzonen wird nicht empfohlen. Nach dem Aufruf der ClearCachedData Methode sind diese Objektvariablen nicht definierte TimeZoneInfo Objekte, die nicht mehr auf TimeZoneInfo.Local oder TimeZoneInfo.Utc. Im folgenden Code wird beispielsweise der zweite Aufruf der TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) Methode ausgelöst ArgumentException , da die local Variable nicht mehr als gleich TimeZoneInfo.Localangesehen wird.

TimeZoneInfo cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
TimeZoneInfo local = TimeZoneInfo.Local;
Console.WriteLine(TimeZoneInfo.ConvertTime(DateTime.Now, local, cst));

TimeZoneInfo.ClearCachedData();
try
{
   Console.WriteLine(TimeZoneInfo.ConvertTime(DateTime.Now, local, cst));
}
catch (ArgumentException e)
{
   Console.WriteLine(e.GetType().Name + "\n   " + e.Message);
}
open System

let cst = TimeZoneInfo.FindSystemTimeZoneById "Central Standard Time"
let local = TimeZoneInfo.Local
printfn $"{TimeZoneInfo.ConvertTime(DateTime.Now, local, cst)}"

TimeZoneInfo.ClearCachedData()
try
   printfn $"{TimeZoneInfo.ConvertTime(DateTime.Now, local, cst)}"
with :? ArgumentException as e ->
   printfn $"{e.GetType().Name}\n   {e.Message}"
Dim cst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")
Dim local As TimeZoneInfo = TimeZoneInfo.Local
Console.WriteLine(TimeZoneInfo.ConvertTime(Date.Now, local, cst))

TimeZoneInfo.ClearCachedData()
Try
   Console.WriteLine(TimeZoneInfo.ConvertTime(Date.Now, local, cst))
Catch e As ArgumentException
   Console.WriteLine(e.GetType().Name & vbCrLf & "   " & e.Message)
End Try

Gilt für