TimeZoneInfo - 每个用户还是全系统?

时间:2012-11-21 12:58:29

标签: c# .net timezone

我想知道System.TimeZoneInfo是本地用户还是系统范围的设置?我一直在修改我的本地时区作为我登录的用户,但是作为记录时区的系统在后台运行的服务似乎不断记录旧的时区。如果TimeZoneInfo是每个用户,那么有没有办法可以查找所有用户的时区列表?

3 个答案:

答案 0 :(得分:1)

TimeZone是系统范围的,它不是用户范围的设置。但问题是.NET缓存当前时区以重置缓存: System.Globalization.CultureInfo.CurrentCulture.ClearCachedData();

答案 1 :(得分:1)

我认为你真的在谈论TimeZoneInfo.Local?我相信这是一个系统范围的设置但是它是基于每个进程缓存的。您可以调用TimeZoneInfo.ClearCachedData()强制刷新 - 虽然显然您必须知道这样做:)如果您正在运行需要了解更改的后台任务,您可以随时调用一次5分钟......如果你可以忍受长达5分钟的陈旧情况,我认为这不会是一次巨大的性能打击。

(我觉得奇怪的是,更改系统时区似乎不需要特权访问 - 至少在Windows 7中 - 但是嘿......)

答案 2 :(得分:1)

时区是系统设置。 (HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ TimeZoneInformation)。