我想弄清楚System.TimeZoneInfo
是本地用户还是系统范围的设置?作为我登录的用户,我一直在修改我的本地时区,但是作为记录时区的系统在后台运行的服务似乎不断地记录旧时区。如果 TimeZoneInfo 是每个用户的,那么有没有办法可以查找所有用户的时区列表?
问问题
258 次
3 回答
2
我想你真的在谈论TimeZoneInfo.Local
? 我相信这是一个系统范围的设置,但它是基于每个进程缓存的。您可以调用TimeZoneInfo.ClearCachedData()
强制刷新 - 尽管显然您必须知道这样做:) 如果您正在运行需要进行更改的后台任务,您总是可以每 5 分钟调用一次...我认为这不会对性能造成巨大影响,如果您可以忍受它长达 5 分钟的陈旧状态。
(我觉得很奇怪,更改系统时区似乎不需要特权访问 - 至少在 Windows 7 中 - 但是嘿......)
于 2012-11-21T13:08:54.897 回答
1
TimeZone 是系统范围的,它不是用户范围的设置。但是您的问题是 .NET 缓存当前时区以重置缓存:
System.Globalization.CultureInfo.CurrentCulture.ClearCachedData();
于 2012-11-21T13:08:44.277 回答
1
时区是系统设置。(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation)。
于 2012-11-21T13:09:18.050 回答