更改System Time.NET后重新启动服务



我的示例程序中有以下代码。我在这里打印DateTime。现在每1秒打印一次。现在,如果我将系统时间更改为另一个时区,仍然是DateTime。现在只取旧值。为什么会出现这种情况?当我重新启动服务时,会反映出新的DateTime。有人能解释一下吗?当程序运行时,我正在从Windows日期时间UI手动更改系统的时区。

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
for (int i = 0; i < 50; i++)
{
Console.WriteLine(DateTime.Now);
Thread.Sleep(1000);
}
Console.ReadLine();
}
}

时区的代码被缓存:https://learn.microsoft.com/en-us/dotnet/api/system.timezone.currenttimezone?view=netframework-4.8#给呼叫者的注意事项

CurrentTimeZone首次用于检索时区信息后,会缓存本地时区数据。如果系统的本地时区随后发生更改,CurrentTimeZone属性不会反映此更改。如果需要在应用程序运行时处理时区更改,请使用TimeZoneInfo类并调用其ClearCachedData((方法。

最新更新