Прочитать на английском

Поделиться через


TimeZoneInfo.ClearCachedData Метод

Определение

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

C#
public static void ClearCachedData ();

Комментарии

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

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

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

C#
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);
}

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

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1