TimeZoneInfo.ClearCachedData Метод

Определение

Удаляет кэшированные данные о часовом поясе.

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

Комментарии

Кэшированные данные часового пояса включают данные о местном часовом поясе и часовом поясе UTC.

Вы можете вызвать ClearCachedData метод, чтобы уменьшить объем памяти, посвященный кэшу данных часового пояса приложения, или отразить тот факт, что часовой пояс локальной системы изменился.

Не рекомендуется хранить ссылки на локальные и часовые пояса UTC. После вызова ClearCachedData метода эти переменные объекта будут неопределенными TimeZoneInfo объектами, которые больше не ссылаются на TimeZoneInfo.Local них.TimeZoneInfo.Utc Например, во втором вызове метода в следующем коде возникает TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) ArgumentException исключение, так как local переменная больше не считается равной TimeZoneInfo.Local.

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

Применяется к