每个线程如何设置时区?我知道我们可以改变当前线程的当前文化。而且我知道我们无法从CurrentCulture获取TimeZoneInfo,因为一种文化可能有许多时区,例如美国,但使用相同的技术来处理当前线程的时区。如果我们能做这样的事情就太好了:TimeZone.CurrentTimeZone=TimeZoneInfo.FindSystemTimeZoneById("timezoneid");不幸的是,任何“当前”时区的概念都与运行代码设置相关联的机器的操作系统相关联。有一些用于更改时区的Win32api,但我不建议使用它们。它们不仅不是“线程安全的”,而且也不是“进程安全的”。时区设置会影响计算机上运行的所有内容。也就是说,我很好奇您的用例是什么。如果您能够为每个线程设置时区,那么您可能根本不依赖于本地设置。您可以在TimeZoneInfo上使用convert方法。例如,假设您要查找不同时区的当前时间。您可能正在寻找执行此操作的能力:using(TimeZone.CurrentTimeZone=...){varnow=DateTime.Now;但是你应该在适当的时候从UTC转换:Timezoneforeachthread?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——varnow=TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow,"其他时区id");本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
