System.TimeZoneInfo
がローカルユーザーなのかシステム全体の設定なのかを把握しようとしていますか?ログインしているユーザーとしてローカルタイムゾーンを変更していますが、タイムゾーンをログに記録しているシステムとしてバックグラウンドで実行されているサービスは、古いタイムゾーンを継続的にログに記録しているようです。TimeZoneInfoがユーザーごとの場合、すべてのユーザーのタイムゾーンのリストを検索する方法はありますか?
3 に答える
私はあなたが本当に話していると思いますTimeZoneInfo.Local
か?これはシステム全体の設定だと思いますが、プロセスごとにキャッシュされます。更新を強制するために呼び出すことができますTimeZoneInfo.ClearCachedData()
-明らかにそうすることを知っておく必要があります:)変更を取得する必要があるバックグラウンドタスクを実行している場合は、いつでも5分ごとに呼び出すことができます...最大 5 分間古くなっても問題がなければ、パフォーマンスが大幅に低下することはないと思います。
(少なくとも Windows 7 では、システムのタイム ゾーンを変更するのに特権アクセスが必要ないように見えるのは奇妙に思えますが、ちょっと...)
TimeZone はシステム全体であり、ユーザー全体の設定ではありません。しかし、問題は、.NET が現在のタイムゾーンをキャッシュしてキャッシュをリセットすることです。
System.Globalization.CultureInfo.CurrentCulture.ClearCachedData();
タイムゾーンはシステム設定です。(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation)。