TimeZoneInfo.ClearCachedData メソッド

定義

キャッシュされたタイム ゾーン データをクリアします。

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

注釈

キャッシュされたタイム ゾーン データには、ローカル タイム ゾーンと協定世界時 (UTC) ゾーンのデータが含まれます。

ClearCachedData メソッドを呼び出して、アプリケーションのタイム ゾーン情報のキャッシュに割り当てられるメモリを減らすか、ローカル システムのタイム ゾーンが変更されたという事実を反映することができます。

ローカル タイム ゾーンと UTC タイム ゾーンへの参照を格納することはお勧めしません。 ClearCachedData メソッドの呼び出し後、これらのオブジェクト変数は、TimeZoneInfo.LocalまたはTimeZoneInfo.Utcへの参照ではなくなったオブジェクトTimeZoneInfo未定義になります。 たとえば、次のコードでは、local変数がTimeZoneInfo.Localと等しいと見なされなくなったため、TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) メソッドの 2 回目の呼び出しでArgumentExceptionがスローされます。

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

適用対象